Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   FAQ (http://www.flasher.ru/forum/forumdisplay.php?f=86)
-   -   [AS2]что такое mx.utils.Delegate и как им пользоваться (http://www.flasher.ru/forum/showthread.php?t=65961)

Nirth 23.06.2005 17:15

[AS2]что такое mx.utils.Delegate и как им пользоваться
 
Иногда бывает нужно "перенести" область видимости того или иного метода в "другое место", и тут нам на выручку приходит класс Delegate

простейший пример на котором я понял как он работает заключался в загрузке хмл
Код:

class ParseXML{
  private var _xml:XML = null;
 
  public function MyXML(url:String){
      this.init();
  }
  private function init(url:String):Void{
            if(path){
        _xml = new XML();
        _xml.ignoreWhite = true;
       
        _xml.onLoad = mx.utils.Delegate.create(this, doIt);
       
        _xml.load(path);
      }
  } 
  private function doIt(success):Void {
      if(success) trace("done");
  }
}

Так же может понадобиться при использовании setInterval
данный вариант работать не будет
Код:

var id = setInterval(function () {
        this.ball_mc._x += 5;
}, 50);

Зато будет работать этот
Код:

var id = setInterval(mx.utils.Delegate.create(this, function () {
        this.ball_mc._x += 5;
}), 50);



Часовой пояс GMT +4, время: 02:17.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.