Показать сообщение отдельно
Старый 14.11.2015, 19:36
bushstas вне форума Посмотреть профиль Отправить личное сообщение для bushstas Найти все сообщения от bushstas
  № 3  
Ответить с цитированием
bushstas

Регистрация: Apr 2014
Сообщений: 16
У меня есть класс Main, есть класс Page

у класса Main есть метод createView, в котором создается экземпляр класса Page, который должен загрузить необходимые для себя данные и выполнить полученный callback

Код AS1/AS2:
private function createView(viewName:String):Component {
     var view = new Page();
     view.load(function() {
          this.addChild(view, viewName);	
     });
     return view;
}
Метод load у класса Page
Код AS1/AS2:
public function load(callback) {
	DataLoader.load('getPageData', function() {
		callback();
	});
}
так вот мне нужно чтобы внутри функции callback был нужный контекст, думается мне что нужно его передавать вторым аргументом и делать apply

Добавлено через 10 минут
Есть идея сделать что-то типа того:

Оба этих класса унаследованы от класса Component

Написать ему метод bind

Код AS1/AS2:
protected function bind(callback) {
     var self = this;
     return function() {
          callback.apply(self);
     }
}
что-то типа того

и использовать

Код AS1/AS2:
private function createView(viewName:String):Component {
     var view = new Page();
     var cb = this.bind(function() {
          this.addChild(view, viewName);	
     });
     view.load(cb);
     return view;
}


Последний раз редактировалось bushstas; 14.11.2015 в 19:47.