[英]How to assign properties to a MovieClip in Flash and have them accessible in Flex?
这是情况。
在Flash Professional中,我有一个MovieClip,并且该剪辑有子级。 假设父剪辑是夜空,而子剪辑则是动画循环播放的明星MovieClip的不同实例。 整个过程都可以编译成NightSky.swc,在Flash Builder中用作较大项目的一部分。
在Flash Pro中,我以较高的精度定位子剪辑。 从那里,我想为这些“星星”分配属性。 说,我想分配“ galaxyId”和“ isRedGiant”,但是( 这是关键 )我想在Flash Professional中编辑这些属性,并在Flex中访问这些值。 我怎么做?
例如,使用Flash Pro,我在天空中放置了6颗恒星,并为其赋予所有星系ID“ MilkyWay”,并将其中3颗指定为红色巨人。 然后,我编译SWC并移至flex。 在Flex(Flash Builder)中,我遵循以下原则:
public function showRedPulse():void {
//psuedo-code just as an example:
for each Child in the Night Sky
if Child is in the Milky Way
and if Child is a Red Giant
Then, gotoAndPlay("redPulse")
}
因此,基本上,我需要在Flex中访问属性,但需要在Flash中进行设置。
好。 因此,我在CS4中已经进行了大约2年,但是在CS5中,这是非常麻烦的事情。 所以我正在寻找一种新方法。 我之前所做的是创建一个ActionScript类(扩展UIMovieClip),并将Inspectable元标记添加到我需要在Flash中看到的字段中,如下所示:
private var _galaxyId:String;
[Inspectable(name="galaxyId", type=String, defaultValue="MilkyWay")]
public function set galaxyId(value:String):void {
_galaxyId = value;
}
然后,在Flash Professional中,我将让“明星”使用actionscript类作为它的基类。 然后,我将右键单击库中的星形并编辑其组件定义,将其指向相同的类。 完成此操作后,所有可检查的属性都将显示在Flash的组件检查器中。
我以前的方法多年来效果很好。 现在,在CS5中,它有很多漏洞,只能有时工作! 我完全陷入困境,无法继续进行我的项目,并且我正在考虑完全放弃Flash Pro,而是尝试使用Flash Catalyst。
我只需要在Flash中创建可以在Flex中使用的对象(3.6而不是Flex 4)。 我需要那些Flash对象具有可以在Flash中编辑和在Flex代码中访问的属性。
我还能如何处理呢? 这不应该那么难。
在符号属性中,为动画片段创建一个新类,然后在此处声明您的属性。 只要您导入swc,Flex就会看到该属性并且是类型安全的。
那里没有太多好的文档,这是我能找到的最好的文档: http : //www.adobe.com/devnet/flash/articles/concept_base_class.html
事实证明,CS5中存在一个与使用组件有关的细微错误。
Flash CS5 + components as children in UIMovieClips = fail.
保存为CS4文件时,完全相同的文件可以进行零修改。
因此,此问题的“答案”是先前的解决方案是正确的方法。 这个奇怪的错误可能需要一些时间才能在CS5中得到解决。 据我所知,Adobe意识到了这个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.