繁体   English   中英

了解将Flash SWC导入Flex Builder 3和关键帧动画

[英]Understanding Flash SWC's imported into Flex Builder 3 and key framed animation

我试图了解从Flash CS4导入Flex Builder 3的SWC中发生了什么。具体地说,我正在使用Designer提供的SWC作为自定义预加载器(子类DownloadProgressBar)的动画。

我试图理解的问题是,一旦触发了FlexEvent.INIT_COMPLETE,我将通过运行以下命令删除swc进行清理:

removeChild(myPreloader);
myPreloader = null;

尽管即使删除了此文件(成功,如我通过在调用之前和之后比较this.numChildren进行的检查),关键帧动画仍然继续运行(不明显)。 设计器已将其放置在动画的时间线中(在Flash中)来检测到此情况。

谁能告诉我为什么,即使从子类DownloadProgressBar中删除了动画之后,动画仍然可以继续运行?

另外,导入SWC来从事物的Flash端管理资源清理时,这是否是标准做法(就像在obj-c中释放内存一样)。 我发现与从Flex一侧移除子对象不会停止动画相反,这很直观。

任何线索,将不胜感激。

基本上,您的SWC文件只不过是包含SWF的ZIP文件。 因此,您要做的是从舞台上删除MovieClip,但它不会停止或卸载它。 您可能要尝试

myPreloader.stop();

停止动画并

myPreloaderLoader.unload();

从舞台上删除该项目以释放​​内存之后。

但是要当心:Flash Player垃圾回收并不总是能正常工作。 如果myPreloader中正在运行任何类型的ActionScript,则它可能会继续运行,并且在垃圾回收期间将被忽略。 通常最好为所有AS类包括clear()destroy()方法,并在Event.REMOVED_FROM_STAGE调用它。 这必须由您的设计师同事完成,但是以我的经验,这是最干净的过程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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