我试图向舞台添加同一个按钮的多个不同版本,并且能够稍后通过为其分配ID来访问它们。我认为这样做的方法是为按钮定义一个内部静态变量的类,以便可以在下一个函数中找到该ID。这似乎没有工作,因为ID是不断显示为最后给出的数字,所以在这种情况下6.AS3动态添加按钮到舞台并访问不同的功能
我认为我做错了这个?这里是我的代码,这样就可以更好地理解:
package src {
import flash.display.MovieClip;
import flash.events.*;
import flash.utils.Timer;
import flash.net.*
import flash.display.Loader
public class main extends MovieClip {
public var xmlData:XML = new XML
public var currentName = null
public function main() {
var y = 0
for(x=0; x<=6; x++){
var names:namez = new namez
namez.ID = y
y++
names.y = x*25
names.addEventListener(MouseEvent.CLICK, checkMe)
spinner.addChild(names)
}
}
public function checkMe(e:MouseEvent){
trace("clicked"+namez.ID)
}
}
}
namez.as类:
package src {
import flash.display.MovieClip
public class namez extends MovieClip{
internal static var ID
public function namez() {
}
}
}
尽管做了跟踪为namez.ID按钮并正确显示0,1,2, 3,4,5,6当按钮被点击时,唯一显示的数字是6.
如何正确地使动态添加按钮可以被其他功能访问?我应该在这里使用数组吗?
FYI所需按键的总数为241
使用这个会给我这个错误:“TypeError:Error#1009:Can not access a property or method of null object reference。 \t at src :: main/checkMe()” – 2012-01-11 20:59:01
'namez'当时的事件。尝试添加:this.mouseChildren = false;进入namez类的构造函数。 – 2012-01-18 20:01:55