Я использую Actionscript 2.0 для мобильного телефона и не могу разобраться в событиях.
Я создаю объект класса со всем моим кодом и использую группу функций (все как прямые дочерние элементы 1-го уровня класса). Есть одна функция, которая создает мувиклип с квадратом и устанавливает событие 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.
Любые предложения о том, как получить доступ к _x, _y и другим свойствам объекта Movieclip, который был нажат.