【问题标题】:Actionscript 3.0 Get all instances of a class?Actionscript 3.0 获取一个类的所有实例?
【发布时间】:2012-04-26 21:20:47
【问题描述】:

我在一堂课上得到了大量的电影剪辑。除了这个之外,还有没有更有效的方法将函数应用于类中的每个实例?

var textArray:Array = [
    interludes.interludeIntro.interludeBegin1,
    interludes.interludeIntro.interludeBegin2,
    interludes.interludeIntro.interludeBegin3,
    interludes.interludeIntro.interludeBegin4,
    interludes.interludeIntro.interludeBegin5,
    interludes.interludeIntro.interludeBegin6,
    interludes.interludeIntro.interludeBegin7, 
    //... ... ...  
    interludes.interludeIntro.interludeBegin15
];                                     
for each (var interludeText:MovieClip in interludeBeginText)
{
   interludeText.alpha = 0 //clear all text first
}

由于某种原因,这也不起作用:

interludes.interludeIntro.alpha = 0;

即使我稍后尝试使特定实例可见,它也会永久使该类不可见:

interludes.interludeIntro.interludeBegin1.alpha = 1;

我不知道为什么上述方法不起作用。我想将 interludeIntro 类中的每个实例变为不可见,但我想稍后将特定实例变为可见。

(顺便说一句,我不知道如何在这个网站上插入代码,按“代码”没有任何作用,所以请原谅格式错误)

【问题讨论】:

  • 请花点时间阅读stackoverflow.com/editing-help
  • interludes.interludeIntro.alpha = 0; 的行为是预期的,因为所有孩子的 alpha 乘以他们父母的 alpha。因此,如果您将容器的alpha 设置为0,则所有子级的alpha 的有效0 也是如此。

标签: arrays flash actionscript for-loop instance


【解决方案1】:

当你这样做时:

interludes.interludeIntro.alpha = 0;

您将影片剪辑所有子剪辑不可见。

所以稍后当你这样做时:

 interludes.interludeIntro.interludeBegin1.alpha = 1;

您使影片剪辑可见,但由于其父级仍然不可见,因此您什么也看不到。解决方案是循环播放影片剪辑并使它们中的每一个不可见/可见。

// Keep the parent visible at all time
interludes.interludeIntro.alpha = 1;

for (var i:int = 0; i < textArray.length; i++) {
    textArray[i].alpha = 0;
}

// Now this will work:
interludes.interludeIntro.interludeBegin1.alpha = 1;

【讨论】:

    【解决方案2】:

    我不太确定您在问什么,但可能有用的是,在 ActionScript 中您可以按名称引用属性,例如 myObject["someProperty"]

    使用它,如果属性遵循某种命名方案,您可以迭代它们,例如:

    for (var i:int = 1; i <= 15; i ++)
        interludes.interludeIntro["interludeBegin" + i].alpha = 0;
    

    这会遍历interludes.interludeIntro.interludeBegin1...15 并将它们的alpha 属性设置为0

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-10
      • 2021-08-23
      • 2013-10-31
      • 1970-01-01
      • 2013-04-04
      相关资源
      最近更新 更多