Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 如何从外部swf控制主时间线_Flash_Actionscript 3 - Fatal编程技术网

Flash 如何从外部swf控制主时间线

Flash 如何从外部swf控制主时间线,flash,actionscript-3,Flash,Actionscript 3,我有一个main.swf,里面只是一个普通的容器movieclip。使用Loader函数,我在该容器中加载一个名为content.swf的外部swf。Container.swf中有一个按钮。 现在,当外部swf加载到main.swf阶段的容器mc中时,我想通过单击加载的外部swf的按钮移动到另一个帧。 如果我试图从主时间线控制它,我会得到错误的提示 cannot convert flash.display::Loader@117e7041 to flash.display.MovieClip.

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

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

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

从错误消息中,似乎您试图将加载程序投射到电影剪辑中。改用
loader.content
属性

var mc:MovieClip = loader.content as MovieClip;
//do whatever you want with mc
我是这样做的:

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);
var mc:MovieClip = MovieClip(loader.content);
在这之后,我收到了这个错误:

TypeError:Error#2007:参数子项必须为非null。 在flash.display::DisplayObjectContainer/addChild()处
在index_fla::main timeline/frame1()

中,请确保您正在使用如图所示的事件处理程序,因为在您的案例中,当您尝试将其添加到容器时,loader.content尚未加载“content.swf”

此外,最好是这样铸造:

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);
var mc:MovieClip = MovieClip(loader.content);
“as”不会向您抛出错误的原因很简单,因为您试图强制转换的对象为空或无法强制转换。

但请记住:“以ActionScript 1.0或2.0编写的SWF文件作为AVM1Movie对象加载,不能交叉编写以ActionScript 3.0编写的SWF文件作为Sprite或MovieClip对象加载。您可以使用LocalConnection类使这些文件相互通信。"