我有一个main.swf,里面只是一个普通的容器动画片段。使用Loader函数我在该容器中加载一个名为content.swf的外部swf。 Container.swf里面有一个按钮。 现在当外部swf加载到main.swf阶段的容器mc中时,我想通过单击加载的外部swf的按钮移动到另一个框架。 如果我尝试从主时间轴控制它,我会收到错误说
cannot convert flash.display::Loader@117e7041 to flash.display.MovieClip.
如果我尝试从外部swf控制它,我可以追踪按钮上的点击,但时间轴不会移动到想要的帧。
答案 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或无法投射。