繁体   English   中英

Flex将SWF加载为Sprite。 如何将其加载为Movieclip?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM