动作脚本和MovieClip - 如何联合几个MovieClip?

时间:2011-05-22 21:47:26

标签: flash actionscript-3

我刚开始阅读“学习ActionScript 3.0”一书。所以在第3章中,作者介绍了EventLinsteners。

有一个子标题事件传播。从一开始,作者就创建了舞台上的文件夹,实例名称为Folder0和Folder1,并解释了Mouse_Over事件。比它说你的舞台上有100个这样的文件夹,你必须为每个Folder实例编写EventListener。因此,他们为名称为folder_group的实例引入了一些“奇怪的我”类型,它就像1个MovieClip,但里面有几个MovieClip(我猜MovieClip是正确的引用)。

所以,很快,在本章的下一部分中,有一个Frame Events子标题,其中Author有Unicycle。那个独轮车也是一个单一的MovieClip。当你双击它时,它必须有实例。正文实例和滚轮实例。

那么,我该怎么做呢。如何创建具有多个不同部分的动画片段。当您双击它时,您从Scene1 - >移动; “一些名字”。

请有人解释如何做到这一点......我试着去谷歌但是还是想知道。

还有一件事。单独的ActionScript文件和FLA-ActionScript模式(我的意思是F9)

之间的区别是什么

提前致谢

1 个答案:

答案 0 :(得分:1)

关于事件传播,您可以查看this link,示例swf显示冒泡/传播和停止传播

默认情况下,click事件将传播,因此只要您将事件附加到顶级movieClip,就可以在那里设置操作。

你可以尝试这个简单的测试。使用此代码创建一个名为“mc”的MovieClip,并在其中放置一些其他影片剪辑,只要您点击该mc内的任何内容,就会触发一个事件。如果你给这些movieClip命名,你会看到弹出的名字,否则你应该看到类似这样的名字“instance#”

mc.addEventListener(MouseEvent.CLICK,onHit);

function onHit(e:MouseEvent):void{
    trace(e.target.name);
}

将代码放在.as文件中会使代码更容易编写。例如,我在外部编辑器中执行99.7%的编码,并且仅使用flash来创建我的图形资源。 您可以使用所谓的documentClass,它扩展了作为舞台的默认MovieClip,adobe帮助中的大多数示例都使用这些。为了快速测试,我只使用代码面板(F9)。真正的重要区别在于这种方式编码(使用.as文件)更容易,更快,尤其是使用FlashDevelop,FlashBuilder,FDT等IDE。


对于您提供的fla,您可以将其用于doc类

package {

    import flash.display.MovieClip;
    import flash.events.MouseEvent;

    public class FrameEvents extends MovieClip {

        public function FrameEvents() {
            cycle.addEventListener(MouseEvent.CLICK,onHit);
        }

        public function onHit(e:MouseEvent):void{
            trace(e.target.name);
        }
    }
}

当您点击正文时,您应该会看到body跟踪,而当您点击滚轮时,您会看到wheel