我在手机上使用 Actionscript 2.0,无法理解事件。
我正在使用我的所有代码创建一个类对象并使用一组函数(全部作为该类的直接第一级子级)。有一个函数可以创建一个带有正方形的 Movieclip,并将 onPress 事件设置为另一个名为 hit 的函数:
public function draw1Sqr(sName:String,pTL:Object,sSide:Number,rgb:Number){
// create a movie clip for the Sqr
var Sqr:MovieClip=this.canvas_mc.createEmptyMovieClip(sName,this.canvas_mc.getNextHighestDepth());
// draw square
Sqr.beginFill(rgb);
//etc ...more lines
//setup properties (these are accessible in the event)
Sqr.sSide=sSide;
Sqr.sName=sName;
//setup event
Sqr.onPress = hit; // this syntax seems to lead to 'this' within
// the handler function to be Sqr (movieclip)
//Sqr.onPress = Delegate.create(this, hit);
//I've read a lot about Delegate but it seems to make things harder for me.
}
然后在我的事件处理程序中,我无法获得正确的范围......
public function hit(){
for (var x in this){
trace(x + " == " + this[x]);
}
//output results
//onPress == [type Function]
//sName == bSqr_7_4
//sSide == 20
trace(eval(this["._parent"])); //undefined
trace(eval(this["._x"])); //undefined
}
出于某种原因,虽然范围设置为调用对象(Sqr,Movieclip)并且我可以访问我定义的属性,但我不能使用 Movieclip 对象的“本机”属性。
关于如何访问被按下的 Movieclip 对象的 _x、_y 和其他属性的任何建议。