Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 AS3引用movieclip by.name属性_Actionscript 3_Flash_Movieclip - Fatal编程技术网

Actionscript 3 AS3引用movieclip by.name属性

Actionscript 3 AS3引用movieclip by.name属性,actionscript-3,flash,movieclip,Actionscript 3,Flash,Movieclip,是啊,又是一个简单的问题 我如何通过“.name”引用电影剪辑 我试图寻找解决办法,但什么也找不到。基本上,我在舞台上用一个循环添加了一组电影唇,所以我发现区分它们的方法是给它们一个.名称“something”+循环的“I”。所以现在它们被命名为“something1”、“something2”、“something3”等等 现在,我需要发送一些到特定的帧。通常我会这样做: something1.gotoAndStop(2); 但是“something1”不是实例名,只是“.name”。我找不

是啊,又是一个简单的问题

我如何通过“.name”引用电影剪辑

我试图寻找解决办法,但什么也找不到。基本上,我在舞台上用一个循环添加了一组电影唇,所以我发现区分它们的方法是给它们一个.名称“something”+循环的“I”。所以现在它们被命名为“something1”、“something2”、“something3”等等

现在,我需要发送一些到特定的帧。通常我会这样做:

something1.gotoAndStop(2);

但是“something1”不是实例名,只是“.name”。我找不到引用它的方法。

您想使用getChildByName(“名称”)

导入flash.display.MovieClip

// create boxes
for(var i:int = 0 ; i < 4; i++){

    var box:MovieClip = new myBox(); // myBox is a symbol in the library (export for actionscript is checked and class name is myBox

    box.name = "box_" + i;
    box.x = i * 100;
    this.addChild(box);

}

// call one of the boxes

var targetBox:MovieClip = this.getChildByName("box_2") as MovieClip;
targetBox.gotoAndStop(2);
//创建框
对于(变量i:int=0;i<4;i++){
var-box:MovieClip=new myBox();//myBox是库中的一个符号(选中了actionscript导出,类名为myBox
box.name=“box_”+i;
框x=i*100;
这个.addChild(box);
}
//打电话给其中一个盒子
var targetBox:MovieClip=this.getChildByName(“box_2”)作为MovieClip;
targetBox.gotoAndStop(2);

您可以使用父级按名称获取子级。如果父级是阶段:

var something1:MovieClip = stage.getChildByName("something1");
something1.gotoAndStop(2);

按名称访问东西很容易出错。如果你是新手,这不是一个好习惯。我认为更安全的方法是将对你正在循环中创建的东西的引用存储在一个数组中,并通过它们的索引引用它们

例如:

var boxes:Array = [];
const NUM_BOXES:int = 4;
const SPACING:int = 100;

// create boxes
for(var i:int = 0 ; i < NUM_BOXES:; i++){

    var box:MovieClip = new MovieClip(); 

    // You can still do this, but only as a label, don't rely on it for finding the box later!
    box.name = "box_" + i; 
    box.x = i * SPACING;
    addChild(box);

    // store the box for lookup later.
    boxes.push(box); // or boxes[i] = box;
}

// talk to the third box
const RESET_FRAME:int = 2;
var targetBox:MovieClip = boxes[2] as MovieClip;
targetBox.gotoAndStop(RESET_FRAME);
var框:数组=[];
const NUM_框:int=4;
常数间距:int=100;
//创建框
对于(变量i:int=0;i

注意,我还用常量和变量替换了许多松散的数字,这也有助于编译器发现错误。

每当我使用getChildByName(“something1”);我都会收到一个“标签必须是简单标识符”错误。好的,我添加了上面的代码并对其进行了测试。应该可以正常工作。感谢您的有用建议!