为 ActionScript 导出库元件

简介:

默认情况下,Flash 文档库中的影片剪辑元件实例不能以动态方式创建(即只使用 ActionScript 创建)。这是因为导出供 ActionScript 使用的每个元件都会增加 SWF 文件的大小,而且众所周知,有些元件可能不适合在舞台上使用。因此,为了使元件可以在 ActionScript 中使用,必须指定为 ActionScript 导出该元件。

为 ActionScript 导出元件:

在“库”面板中选择该元件并打开其“元件属性”对话框。

必要时激活“高级”设置。

在“链接”部分中,激活“为 ActionScript 导出”复选框。

这将激活“类”和“基类”字段。

默认情况下,“类”字段会用删除了空格的元件名称进行填充(例如,名为“Tree House”的元件会变为“TreeHouse”)。若要指定该元件对其行为使用自定义类,请在此字段中输入该类的完整名称,包括它所在的包。如果希望在 ActionScript 中创建该元件的实例,但不需要添加任何其它行为,则可以使类名称保持原样。

“基类”字段的值默认为 flash.display.MovieClip。如果想让元件扩展另一个自定义类的功能,可以指定该类的名称替代这个值,只要该类扩展 Sprite(或 MovieClip)类即可。

按“确定”按钮以保存所做的更改。

此时,如果 Flash 无法找到包含指定类的定义的外部 ActionScript 文件(例如,如果不需要为元件添加其它行为),则会显示警告:

无法在类路径中找到对此类的定义,因此将在导出时自动在 SWF 文件中生成相应的定义。

如果库元件不需要超出 MovieClip 类功能的独特功能,则可以忽略此警告消息。

如果没有为元件提供类,Flash 将为元件创建一个等同于下面所示类的类:

package
{

import flash.display.MovieClip; 
 
public class ExampleMovieClip extends MovieClip 
{ 
    public function ExampleMovieClip() 
    { 
    } 
} 

}
如果想要向元件中添加额外的 ActionScript 功能,请向下面的代码结构中添加相应的属性和方法。例如,假如有一个包含 50 像素宽和 50 像素高的圆形的影片剪辑元件,并用名为 Circle 的类指定为 ActionScript 导出该元件。以下代码在放入 Circle.as 文件后将扩展 MovieClip 类,同时为此元件提供额外的方法 getArea() 和 getCircumference():

package
{

import flash.display.MovieClip; 
 
public class Circle extends MovieClip 
{ 
    public function Circle() 
    { 
    } 
     
    public function getArea():Number 
    { 
    // The formula is Pi times the radius squared. 
    return Math.PI * Math.pow((width / 2), 2); 
    } 
     
    public function getCircumference():Number 
    { 
    // The formula is Pi times the diameter. 
    return Math.PI * width; 
    } 
} 

}
放置在 Flash 文档第 1 帧的关键帧上的以下代码将创建该元件的一个实例,并在屏幕上显示该实例:

var c:Circle = new Circle();
addChild(c);
trace(c.width);
trace(c.height);
trace(c.getArea());
trace(c.getCircumference());
此代码演示了基于 ActionScript 的实例化可作为将单个资源拖放到舞台上的替代方法。它所创建的圆形具有影片剪辑的所有属性,同时还具有 Circle 类中定义的自定义方法。这是一个非常简单的示例 — 您的库元件可在其类中指定任意数目的属性和方法。

基于 ActionScript 的实例化功能强大,因为允许动态创建大量实例,而如果采用手动方式来创建将是一项繁重的任务。同时还很灵活,因为您可以在创建每个实例时自定义该实例的属性。您可以通过使用循环动态创建多个 Circle 实例来体会上述优点。在 Flash 文档库中存在上述 Circle 元件和类的情况下,将下面的代码放在第 1 帧的关键帧上:

import flash.geom.ColorTransform;

var totalCircles:uint = 10;
var i:uint;
for (i = 0; i < totalCircles; i++)
{

// Create a new Circle instance. 
var c:Circle = new Circle(); 
// Place the new Circle at an x coordinate that will space the circles 
// evenly across the Stage. 
c.x = (stage.stageWidth / totalCircles) * i; 
// Place the Circle instance at the vertical center of the Stage. 
c.y = stage.stageHeight / 2; 
// Change the Circle instance to a random color 
c.transform.colorTransform = getRandomColor(); 
// Add the Circle instance to the current timeline. 
addChild(c); 

}

function getRandomColor():ColorTransform
{

// Generate random values for the red, green, and blue color channels. 
var red:Number = (Math.random() * 512) - 255; 
var green:Number = (Math.random() * 512) - 255; 
var blue:Number = (Math.random() * 512) - 255; 
 
// Create and return a ColorTransform object with the random colors. 
return new ColorTransform(1, 1, 1, 1, red, green, blue, 0); 

}
此代码演示了如何使用代码快速创建和自定义元件的多个实例。每个实例都根据循环内的当前计数进行定位,并且每个实例都通过设置 transform 属性(Circle 通过扩展 MovieClip 类而继承该属性)获得了一种随机颜色。
本文转自jiahuafu博客园博客,原文链接http://www.cnblogs.com/jiahuafu/archive/2011/02/22/1961442.html如需转载请自行联系原作者

jiahuafu

相关文章
|
6月前
|
人工智能 算法
要创新,怎少得了智能体?新鲜出炉的TRIZ发明原则AI助手,你不来试试?
TRIZ发明原则AI助手是一款专注于技术创新领域的智能工具,由法思诺创新团队开发。它结合了TRIZ理论中的矛盾矩阵和发明原则,旨在帮助用户聚焦具体技术问题并快速生成大量有针对性的创意解决方案。相比通用AI,该助手在专业性、准确性和实用性上更具优势,尤其适合解决技术和产品研发中的复杂问题。通过将常规问题转化为TRIZ句型、匹配工程参数、查询矛盾矩阵及提供创意思路,助手实现了从问题定义到解决方案的全流程支持。尽管仍存在一些局限性(如偶尔输出不稳定或不够专业),但通过与研发人员的协作,其潜力可得到最大化发挥。目前,团队邀请用户试用并反馈,以持续优化这一创新工具。
274 0
|
3月前
|
机器学习/深度学习 人工智能 算法
赛事获奖|TsingtaoAI斩获“华罗庚杯”创新创业大赛奖项,具身智能实训引领AI产业化人才培养新范式
在常州市科学技术局主办的2025“华罗庚杯”创新创业大赛具身智能专题赛决赛中,TsingtaoAI凭借 “具身智能实训道场研发及产业化”项目,从百余个创新项目中脱颖而出,荣膺 “优秀企业奖” 。
83 0
|
9月前
|
缓存 安全 Java
Spring Boot 3 集成 Spring Security + JWT
本文详细介绍了如何使用Spring Boot 3和Spring Security集成JWT,实现前后端分离的安全认证概述了从入门到引入数据库,再到使用JWT的完整流程。列举了项目中用到的关键依赖,如MyBatis-Plus、Hutool等。简要提及了系统配置表、部门表、字典表等表结构。使用Hutool-jwt工具类进行JWT校验。配置忽略路径、禁用CSRF、添加JWT校验过滤器等。实现登录接口,返回token等信息。
4431 13
Spring Boot 3 集成 Spring Security + JWT
|
JavaScript Linux 网络安全
若依修改,若依启动之后,网页端无法访问接口,宝塔和云服务器的端口都要放开,就好了,软件开发常见流程,后台端口就可以访问了
若依修改,若依启动之后,网页端无法访问接口,宝塔和云服务器的端口都要放开,就好了,软件开发常见流程,后台端口就可以访问了
|
存储 索引 Python
NumPy 教程 之 NumPy 统计函数 5
NumPy提供了多种统计函数,如`numpy.median()`用于计算数组元素的中位数。该函数可通过设置参数`axis`指定计算轴向,`out`指定结果存放位置,`overwrite_input`允许使用输入数组内存以提升性能,`keepdims`保持结果数组维度。示例展示了在不同轴向上调用`median()`的结果。
161 1
|
数据可视化 IDE Java
PlanUML和Mermaid哪个好?
PlanUML和Mermaid哪个好?
2643 0
|
算法 Java BI
IP 转换_IP2Region | 学习笔记
快速学习IP 转换_IP2Region
1040 0
IP 转换_IP2Region | 学习笔记
|
14天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾