我的问题如下:
我有一个由包含动态文本框 (text_txt) 和基本背景矩形的 MovieClip 组成的菜单。
我已经通过将所有项目名称放入一个数组并循环遍历它,为由实例名称(item1_mc 等)定义的每个项目分配了 MouseEvent.CLICK 的事件侦听器。
var menuItemsArray:Array = [item1, item2, item3, item4, item5, item6, item7, item8, item9, item10, item11, item12];
for(var i:int = 0; i < menuItemsArray.length; i++){
menuItemsArray[i].text_txt.text = labelArray[i];
menuItemsArray[i].addEventListener(MouseEvent.CLICK, menuItem_click);
}
...然后使用以下方法确定正在按下哪个(并从中删除文本):
function menuItem_click(e:MouseEvent){
unit_name = e.target.text;
}
...如果我直接单击 MovieClip 中的 TextField(返回文本),一切正常,但如果我单击 MovieClip 的边缘(以及动态文本框区域之外),它只会返回错误 #2007因为它试图从不包含文本的 [object menuItem_button_23] 中提取文本。
理想情况下,我想要发生的是,无论我在哪里单击 MovieClip 的“按钮”,我都会拉出文本,但我已经尝试过包括 e.currentTarget、e.target 以及两者的组合以及 .text , .text_txt.text 等等——但一切都以在外面有一个“死区”的问题告终。
此外,基本上我想要做的是创建一个包含标签文本的数组(通过内部文本字段)标记的电影剪辑“按钮”菜单。然后,当我单击按钮时,我想确定按下的是哪个按钮,并检索标签以允许我访问与所述标签文本相关的更多信息。
如果有人有解决方案,或者我正在尝试做的更好的方法,我会全神贯注。应该注意我的 AS3 经验/知识充其量只是平均水平,我很想学习一些新技术来完成我想做的事情。如果需要,我还可以提供更多信息。
谢谢!