2010-05-25 124 views
0

我目前正试图通过一个数组和一个循环做出动态菜单。所以当有人点击数组中的第一个项目“menu_bag_mc”时,它将链接到内容“menu_bag_mc_frame”(或某个名字,这个名字将是这个数组唯一的),这是另一个将加载的动画片段。下面是我的代码至今:从数组动作创建变量3

//right here, i need to make a variable that I can put in the "addchild" so that 
//for every one of the list items clicked, it adds a movieclip child with 
//the same name (such as menu_bag_mc from above) with "_frame" appended. 
//I tried the next line out, but it doesn't really work. 
var framevar:MovieClip = menuList[i] += "_frame"; 

function createContent(event:MouseEvent):void { 
    if(MovieClip(root).currentFrame == 850) { 
    while(MovieClip(root).numChildren > 1) 
    { 
     MovieClip(root).removeChild(MovieClip(root).getChildAt(MovieClip(root).numChildren - 1)); 
    } 
//Here is where the variable would go, to add a child directly related 
//to whichever array item was clicked (here, "framevar") 
MovieClip(root).addChild (framevar); 
MovieClip(root).addChild (closeBtn); 
} 
else { 
MovieClip(root).addChild (framevar); 
MovieClip(root).addChild (closeBtn); 
MovieClip(root).gotoAndPlay(806); 
} 
} 

有没有办法从数组做出了独特的可变(不管它是什么),这样我可以命名后,一个movieclip所以它会加载新的影片剪辑?谢谢

回答

0

什么是你的“menuList”数组组成?字符串?参考影片剪辑?或者是其他东西?我会认为它是一个字符串数组。

请记住,addChild方法需要一个Class的实例,而不是一个Class的名称。

我不知道我明白你在做什么,但我假设你正在试图创建一个你不知道名称的类的实例(你需要根据什么生成名称按钮被点击)。我可能会这样做:

var menuList:Array = ["foo1", "foo2", "foo3"]; 
var className:String = menuList[i] + "_frame"; 

var frameVarClass:Class = flash.utils.getDefinitionByName(className) as Class; 
var framevar:MovieClip = new frameVarClass() as MovieClip; 
MovieClip(root).addChild(framevar); 

这是做什么是生成您需要的类的名称,并将其存储在className变量。然后给名称getDefinitionByName返回一个类。然后,我们创建该类的实例(framevar)并将其转换为MovieClip。然后,我们将这个新的MovieClip添加到根。

+0

这些是我得到的以下错误: 1120:访问未定义的属性i。/1118:将静态类型的对象隐式强制为可能无关类型的类。这是指第三行代码,frameVarClass – steve 2010-05-26 03:30:13

+0

我认为很明显,menuList引用MovieClips,因为我说一个示例项目是“menu_bag_mc”,并说当你点击每个数组项时,它应该链接到一个“movieclip这将加载。“不过,下次我会更具体。 – steve 2010-05-26 03:40:07

+0

我刚更新了那一行。它现在应该工作。我只是想知道menuList包含什么类型,因为你说menuList [i] + =“_frame”。您无法将字符串添加到MovieClip。 – 2010-05-26 04:40:09