首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ActionScript3中泛化实例名称

在ActionScript3中泛化实例名称
EN

Stack Overflow用户
提问于 2012-09-13 21:00:49
回答 3查看 135关注 0票数 0

假设有这样一种情况:我有100个电影剪辑,实例名为: MC1a、MC2a、MC3a。MC100a和我希望他们都是隐形的,有没有别的办法,除了:

代码语言:javascript
复制
MC1a.visible = false; ... MC100a.visible = false;

因为在这种情况下,代码变得非常繁重,我认为这不是正确的方式。所以我在想,有没有可能是这样的:

代码语言:javascript
复制
MC*a.visible = false;

所有包含“MC”和“a”以及结尾消失的电影片段?也许是关于数组的东西?

EN

回答 3

Stack Overflow用户

发布于 2012-09-13 21:12:29

如果所有这些movieclips的父级都被称为容器,您可以这样做:

代码语言:javascript
复制
container["MC"+i+"a"].visible=false

这是由于ActionScript的脚本性质造成的。

对于您的特定情况,您可以这样做

代码语言:javascript
复制
for(i=0;i<100;i++){
    container["MC"+i+"a"].visible=false;
}

如果你没有介于0和100之间的所有数字,你可以这样做:

代码语言:javascript
复制
for each(MovieClip mc in container){
    name=mc.name;
    if(name.substring(0,2)=="MC" && name.substring(-1)=="a"){
        mc.visible=false;
    }
}

(这是即时编写的未经测试的伪代码)

票数 3
EN

Stack Overflow用户

发布于 2012-09-13 21:20:00

有几种方法可以实现这一点。首先-创建一个Sprite容器,它将是它们的共同父容器,然后改变它的可见性。这不是一种灵活的方法,例如,如果影片剪辑位于舞台的两个不同区域,并且需要以某种方式进行交互,则可能无法将它们全部放在显示列表中的单个父对象下。第二种方法是在实例化这100个影片剪辑时创建一个数组(当然,如果可能的话),然后遍历该数组并在循环中分配它们的可见性。

基本上,如果您有一些应该形成结构的对象,请考虑首先以某种方式将它们链接起来,然后一起更改它们的可见性或其他参数。如果您需要一次将它们全部移动或隐藏,容器方法会更好。如果需要它们执行类似的动作,但不是完全相同的动作(例如,你有像电影剪辑一样的怪物,你需要它们一起移动,但每个都有自己的方向和速度),你应该有一个数组。

另一件要考虑的事情是,如果有一个电影剪辑的名称类似于"MCbig_a",即符合您的条件,但并不完全属于您希望隐藏的MC组,则必须对此类情况采取预防措施。

票数 0
EN

Stack Overflow用户

发布于 2012-09-13 23:24:26

假设将所有子级添加到名为myContainer的同一容器中

代码语言:javascript
复制
var container:MovieClip = myContainer;
var i:uint = container.numChildren;
while (i--)
{
    var child:* = container.getChildAt(i);
    child.visible = false;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12406880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档