
Код AS1/AS2:
class Mark
{
public var test:number;
public var container:movieclip;
public function set x(value:Number):Void // устанавливает начальную коорд контейнера
{
this.container._x = value;
}
public function set y(value:Number):Void // устанавливает начальную коорд контейнера
{
this.container._y = value;
}
/**
* Constructor.
* Creates new instance of <code>Mark</code>
*/
public function Mark() { super(); } // для красоты
public function draw():Void //
{
// Use MovieClipLoader instead
this.container = _root.createEmptyMovieClip("myClip" + test, test);
this.container.loadMovie("1.png");
// используем делегат класс для обработки событий в классах, подробнее mx.utils.Delegate сдесь же он использует собственно созданный делегат .
this.container.onRollOver = this.makeDelegate(this.mouseOverHandler);
}
private function makeDelegate(func:Function):Function
{
var context:Mark = this;
return function():Object
{
return func.apply(context, arguments);
}
}
public function mouseOverHandler():Void
{
trace ("+");
}
/**
основная функция создающая клипец с параметрами какиеми надо
*/
public function addMark(id:Number, x:Number, y:Void):Void
{
this.test = id;
this.draw();
this.koordinat(x, y);
}
/**
* Функция изменяет местоположение клипа, в любой мопмент времени!!!
*/
public function position(x:Number, y:Number):Void
{
if (!isNaN(x)) this.x = x;
if (!isNaN(y)) this.y = y;
}
}