[英]Flex loads SWF as Sprite. How do I load it as a Movieclip instead?
在遵循( TheFlashCanon的优秀教程 )进行SWF与Flex的通信时,将SWFLoader.content转换为MovieClip实例时遇到问题。 使用Flash CS3(使用动作脚本3)编译有问题的SWF。
但是,当我尝试获取SWFLoader的内容并将其转换为MovieClip实例时,总是会出现以下错误:
TypeError:错误#1034:类型强制转换失败:无法将maix :: main_maix @ 49f94ec1转换为flash.display.MovieClip。 在test1 / onLoadMinigameComplete()[/ Users / chiyin / Documents / Flex Builder 3 / SimpleGirlfriend / src / Main.as:68]
其中maix :: main_maix @ 49f94ec1是我的电影的实例。
我究竟做错了什么? 否则,已加载的swf会正常播放,并且不会表示为AVM1Movie。
更新:发现SWF是作为Sprite(而不是Movieclip)导入的。 如何强制SWFLoader将SWF作为Movieclip而不是Sprite对象加载?
main_maix
看起来是要加载的swf的文档类。如果是这样,则main_maix应该扩展MovieClip
而不是Sprite
:
public class main_maix extends MovieClip
另外,您始终可以将类强制转换为对象,以便能够自由访问它(但这不是很好的做法)。 您可能只想“将其转换为main_maix”:
/**
* Loader finished loading
*
* @param Event Complete event
* @return void
*/
private function onLoadMinigameComplete(event:Event):void
{
// -- either will allow "free access" to methods of main_maix
var maixAsObject:Object = Object(loader.content);
var maixAsMaix:main_maix = main_maix(loader.content);
}
我不知道动态加载的swfs是否相同。 但是,如果要在Flash创作环境中制作动画片段,则它只有一个帧。 然后将其嵌入到Flex应用程序中。 它将作为精灵而不是Movieclip嵌入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.