我有一个存储在数组中的变量名,我想循环遍历数组并将该实例的visible属性设置为false。但是,我收到了错误;
错误#1056:无法在String上创建可见属性。
这是我的代码:
package {
import flash.events.TouchEvent;
import flash.ui.Multitouch;
import flash.ui.MultitouchInputMode;
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class touch extends MovieClip
{
public function touch()
{
var menuitems:Array = new Array("menu_One", "menu_Two", "menu_Three", "menu_Three", "menu_Four", "menu_Five");//array with instance names
for(var i:int=0;i<6;i++){
var tempName = menuitems[i];
bsF_txt.text = tempName;
trace(tempName);
tempName.visible = false;
//menu_One.visible = false;
}
}
}
}
时。我想在AS3做什么?
答案 0 :(得分:2)
首先是的,这是可能的!
问题是你循环遍历一个字符串数组,而不是变量或任何引用DisplayObject的东西(在你的情况下可能是一个MovieClip?)
假设这些字符串是您舞台上的MovieClip的实例名称或引用它们的vars,您可以尝试这样的事情:
public function touch()
{
var menuitems:Array = new Array(menu_One, menu_Two, menu_Three, menu_Three, "menu_Four", menu_Five);//if this gives you an error please paste some more code because these are not instance names or vars
for(var i:int=0; i<menuitems.length ;i++){ //you don't need to explicitly use 6 here you can check the menuitems arrays length
var tempName = menuitems[i]; //note, this is not needed
bsF_txt.text = tempName.name; //I think you're looking for this?
trace(tempName);
tempName.visible = false;
//menu_One.visible = false;
}
}
}
答案 1 :(得分:1)
尝试使用以下代码(我刚注意到你说这些是实例名称......)
package {
import flash.events.TouchEvent;
import flash.ui.Multitouch;
import flash.ui.MultitouchInputMode;
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class touch extends MovieClip
{
public function touch()
{
var menuitems:Array = new Array("menu_One", "menu_Two", "menu_Three", "menu_Three", "menu_Four", "menu_Five");//array with instance names
for(var i:int=0;i<6;i++){
var tempName = menuitems[i];
bsF_txt.text = tempName;
trace(tempName);
getChildByName(tempName).visible = false;
//menu_One.visible = false;
}
}
}
}
主要的变化是你需要告诉flash你的数组中的字符串是一个实例名称。因此,假设它们已添加到舞台中,请使用getChildByName
。
您当前代码失败的原因是您尝试访问String上的visible属性,但String
没有visible
属性。但该字符串名称的实际实例可能是。