如何访问 MovieClip (AS3) 中的变量

How to access variables within MovieClip (AS3)

我是 AS3 的新手,我想问一下如何通过名称访问 MovieClips 中的变量。

通常在 AS2 中,我使用其实例名称后跟 .(name of variable)

例如... 我在名为 my_mc 的 MovieClip 中有一个名为 baru 的变量。 通常我使用 my_mc.baru 来显示变量的值。

现在,我想知道如何在 AS3 中做到这一点

谢谢。

如果你只是喜欢在MovieClip里面写代码而不是*.as,你必须在MovieClip中手动添加一个TextField,将它的类型设置为Dynamic,然后在其中输入变量字符串,然后得到它使用:MovieClip.TextField.text 并且不要忘记:TextField.alpha=0.

这不是一个明智的方法。

在 AS3 中,您需要注意一些独立但相关的事情:

  • 所有显示objects(包括MovieClip)可以有一个name 属性.

    var mc:MovieClip = new MovieClip();
    mc.name = "myMC";
    myContainer.addChild(mc);
    
  • 您可以通过 name 在其 parent 上使用 getChildByName() 找到 child。

    var myMC:MovieClip = myContainer.getChildByName("myMC");
    
  • MoveClip 个实例可以有 dynamic properties 指向 children(或任何东西)。

    myContainer.myMC = myMC;
    

    (请注意,其他显示 object 类型,例如 Sprite 允许动态属性。相反,您需要创建自定义 class 具有 class 属性。)

  • 当您在代码中创建显示 object 时(如上所示),parent 上的 name 或 属性 都不会被自动创建。您可以手动完成,如上所示。

  • 当你在创作工具中放置一个符号实例并给它一个 "instance name", both name and parent 符号上的 属性 将由 "instance name" 分配。在这种情况下,您不能更改代码中的 name

  • 请注意,在 AS2 中使用 createEmptyMovieClipattachMovie 会分配 _name 并在 parent,但没有等同于这些函数的 AS3。 这就是很多混淆的地方。

正如您所看到的,它的工作方式实际上与 AS2 没有什么不同,只是 AS2 具有为您做几件事情的功能(创建并添加 MovieClip,设置 name 并添加 属性 在 parent 上)。 AS2 的问题是创建后不能 re-parent 和 object,这是一个很大的限制。在 AS3 中,您可以自由移动东西。