当前位置: 首页 > 图文教程 > Flash动画 > Flash动画制作 > Flash AS3.0菜鸟学飞教程:类的编写之时间轴代码转换为外部类
Flash动画制作 中的 Flash AS3.0菜鸟学飞教程:类的编写之时间轴代码转换为外部类
| //设置当光标移到circle_mc上时显示手形 circle_mc.buttonMode = true; // 侦听事件 circle_mc.addEventListener(MouseEvent.CLICK,onClick); circle_mc.addEventListener(MouseEvent.MOUSE_DOWN,onDown); circle_mc.addEventListener(MouseEvent.MOUSE_UP,onUp); //定义onClick事件 function onClick(event:MouseEvent):void{ trace("circle clicked"); } //定义onDown事件 function onDown(event:MouseEvent):void{ circle_mc.startDrag(); } function onUp(event:MouseEvent):void{ circle_mc.stopDrag(); } |
3、将此帧上的代码全部选中,按下ctrl+x剪切,新建一个Actionscript文件,将剪切的代码贴上。保存名为drag_include.as。与drag_include.fla 在同一路径下。
4、回到drag_include.fla中,在第一帧上输入如下代码:
include "drag_include.as"
测试影片即可以看到与时间轴上测试时相同的结果了。此方式,在AS1.0 时经常使用。如果你仍习惯这种方式,在Actionscript 3.0中仍可以使用。
元件类(symbol class)
这里所说的元件类,实际是指为flash影片中的元件指定一个链接类名。它与上面的include 的不同之处在于,它使用的是严格的类结构。而不是我们习惯上的时间轴编写方式。我们要将小圆球的拖动功能封装起来,这样不论你创建多少可以拖动的小球,都会变得很轻松,只需要创建它的实例并显示出来即可。
我们仍使用上例来说明:打开drag_include.fla文件,将其另存为Symbol_class.fla文件,新建一个 Actionscript文件,将其保存为Symbol_class.as文件,与Symbol_class.fla文件在相同目录下。现在我们将上面的例子中的代码抽象成类如下:
代码:
| package { import flash.display.MovieClip; import flash.events.MouseEvent; public class Symbol_class extends MovieClip { public function Symbol_class(){ this.buttonMode = true; this.addEventListener(MouseEvent.CLICK,onClick); this.addEventListener(MouseEvent.MOUSE_DOWN,onDown); this.addEventListener(MouseEvent.MOUSE_UP,onUp); } private function onClick(event:MouseEvent):void{ trace("circle clicked"); } private function onDown(event:MouseEvent):void{ this.startDrag(); } private function onUp(event:MouseEvent):void{ this.stopDrag(); } } } |
因为我们将类的名称设置为Symbol_class,所以类文件一定要保存为Symbol_class.as文件。我们还要做一步工作,在源文件中打开库面板,右键链接,类名:Symbol_class即让我们类与元件相关连。此时测试影片,你会看到与上例中相同的结果。注意:场景中仍要保证 circle_mc的存在。因为在代码中我们并没有动态的添加circle_mc。同时这个例子中,与上例一样,我们并没有使用AS3.0的文档类。
评论 (0) All