Показать сообщение отдельно
Старый 23.10.2006, 11:26
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 3  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Название метода «moveBehindTheMouse» с точки зрения английского языка неверно.

Свойств _xmouse, _ymouse в классе Movement не существует.
Вот так написал бы я (может быть и иначе, но в контексте данной задачи):
Код:
import mx.utils.Delegate;
class Movement {

    private var target:MovieClip;
    private var dl:Number;

    public function Movement() {
        // пусто, инициализировать пока нечего
    }

    private function __followHandler():Void {
        var x:Number = this.target._x;
        var y:Number = this.target._y;
        var xmouse:Number = this.target._parent._xmouse;
        var ymouse:Number = this.target._parent._ymouse;
        x += (xmouse-x)/this.dl;
        y += (ymouse-y)/this.dl;
        this.target._x = x;
        this.target._y = y;
    }

    public function followTheMouse(mc:MovieClip, dl:Number):Void {
        this.target = mc;
        this.dl = dl;
        this.target.onEnterFrame = Delegate.create(this,this.__followHandler);
    }

    public function stopFollow():Void {
        delete this.target.onEnterFrame;
        delete this.target;
        delete this.dl;
    }
}
usage:
Код:
mover = new Moviement();
mover.followTheMouse(my_mc,3);
…
mover.stopFollow();
Подробнее расскажу позже, сейчас нужно бежать на работу.

з.Ы. miramax, любой класс является наследником Object, поэтому явно указывать на то, что это Object не нужно.