我是AS3的新手,我想问一下如何通过名字访问MovieClips中的变量。
通常,在AS2中,我使用其实例名称后跟.(name of variable)
例如......
我在名为my_mc
的MovieClip中有一个名为baru的变量。
通常我使用my_mc.baru
来揭示变量的值。
现在,我想知道在AS3中如何做到这一点
谢谢。
答案 0 :(得分:0)
在AS3中,您需要注意一些独立但相关的事情:
所有显示对象(包括MovieClip
)都可以具有name
属性。
var mc:MovieClip = new MovieClip();
mc.name = "myMC";
myContainer.addChild(mc);
您可以通过其name
在其父级上使用getChildByName()
找到一个孩子。
var myMC:MovieClip = myContainer.getChildByName("myMC");
MoveClip
个实例可以dynamic properties指向儿童(或任何内容)。
myContainer.myMC = myMC;
(请注意,其他显示对象类型,例如Sprite
,不允许动态属性。而是需要创建具有类属性的自定义类。)
在代码中创建显示对象时(如上所示),不会自动创建父项name
或属性。您可以手动执行此操作,如上所示。
当你在创作工具中放置一个符号实例并给它一个"实例名称",两者 name
和父符号上的属性将由"实例名称"分配。在这种情况下,您无法更改代码中的name
。
请注意,在AS2中使用createEmptyMovieClip
或attachMovie
会分配_name
并在父级上创建一个属性,但是没有AS3等价物这些功能。这可能会引起很多混乱。
因为您可以看到它的工作方式与AS2没有什么不同,除了AS2具有为您做了几件事的功能(创建并添加MovieClip,设置name
并在其上添加属性父母)。 AS2的问题在于,在创建对象后,您无法重新创建对象,这是一个很大的限制。在AS3中,您可以随意移动物体。
答案 1 :(得分:-1)
如果您只想在MovieClip中编写代码而不是* .as,则必须手动在MovieClip中添加TextField,将其设置为Dynamic,然后在其中键入变量字符串,然后使用它:MovieClip.TextField.text并且不要忘记:TextField.alpha = 0.
这不是一个明智的方法。