如何从外部swf控制主时间轴

时间:2009-10-15 12:24:02

标签: flash actionscript-3

我有一个main.swf,里面只是一个普通的容器动画片段。使用Loader函数我在该容器中加载一个名为content.swf的外部swf。 Container.swf里面有一个按钮。 现在当外部swf加载到main.swf阶段的容器mc中时,我想通过单击加载的外部swf的按钮移动到另一个框架。 如果我尝试从主时间轴控制它,我会收到错误说

cannot convert flash.display::Loader@117e7041 to flash.display.MovieClip.

如果我尝试从外部swf控制它,我可以追踪按钮上的点击,但时间轴不会移动到想要的帧。

3 个答案:

答案 0 :(得分:2)

从错误消息中,您似乎正在尝试将加载器强制转换为影片剪辑。请改用loader.content属性。

var mc:MovieClip = loader.content as MovieClip;
//do whatever you want with mc

答案 1 :(得分:0)

我是这样做的:

var loaderPath:URLRequest = new URLRequest("content.swf");
var loader:Loader = new Loader();
loader.load(loaderPath);
var mc:MovieClip = loader.content as MovieClip;
container.addChild(mc);

之后我收到此错误:

TypeError:错误#2007:参数child必须为非null。     在flash.display :: DisplayObjectContainer / addChild()     在index_fla :: MainTimeline / frame1()

答案 2 :(得分:0)

确保您使用的事件处理程序如here所示,因为在您的情况下,当您尝试将其添加到容器时,loader.content尚未加载“content.swf”。

此外,最好像这样施展:

var mc:MovieClip = MovieClip(loader.content);

由于“as”不会引发错误的简单原因是您尝试投射的对象为null或无法投射。