обращение к функции в классе изнутри объекта в этом классе @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 3 ] 
*   Список форумов / Технологии изображения / Flash » ответить » создать топик « | »
Автор Сообщение
sudya Муж.
новый человек
11
Сообщения: 157
Зарегистрирован: 06.12.06
Откуда: Україна
Заголовок сообщения: обращение к функции в классе изнутри объекта в этом классе
Сообщение Добавлено: 27 Апрель 2007, 14:49:54 
пишу клас где загружают рисунок в мувик, и при этом показывают сколько процентов загрузили и т.д., но сейчас не об этом :)

есть следующая задача, нужно как то обратится к функции класа из объекта, в котором происходят действия, помогите с синтаксисом. Привожу отрывок кода:

Код:
class ImageLoader extends MovieClip {
   var loader:MovieClipLoader;
   var listener:Object;
   //
   function ImageLoader(imgURL, target) {
  //
  this.loader = new MovieClipLoader();
  this.listener = {};
  //
  this.loader.addListener(listener);
  this.loader.loadClip(imgURL, target);
  //
  this.listener.onLoadStart = function():Void  {
     // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     // vot kak eto vizvat'?
     loadIsStart();


  };
   }
   //
   //
   private function loadIsStart():Void {
  trace("ta pofig chto, lij by vyzyvalas' funkcyya")
   }
   //
}


тоесть, нужно вызвать функцию loadIsStart() при начале загрузки.

_________________
русский язык для меня - иностранный!
в роботі використовую http://web-nation.org/.
@st@l@vist@
участник
70
Сообщения: 1606
Зарегистрирован: 20.03.03
Откуда: St.Petersburg
Сообщение Добавлено: 27 Апрель 2007, 15:37:31 
Три варианта на выбор:

1) Сделать слушателем сам экземпляр класса.

Код:
   
      function ImageLoader(url:String, target:MovieClip)
      {
         loader = new MovieClipLoader();
         loader.addListener(this);
         loader.loadClip(url, target);
      }
      
      function onLoadError()
      {
         trace("error");
      }


2) Создать локальную ссылку на экземпляр класса (можно записать ее значение в Listener).

Код:
      function ImageLoader(url:String, target:MovieClip)
      {
         var me = this;
         
         listener = new Object()
         listener.onLoadError = function()
         {
            me.onError();
         }
         loader = new MovieClipLoader();
         loader.addListener(listener);
         loader.loadClip(url, target);
      }
      
      function onError()
      {
         trace("error");
      }


3) Воспользоваться утилитой Delegate

Код:
      function ImageLoader(url:String, target:MovieClip)
      {
         listener = new Object();
         listener.onLoadError = mx.utils.Delegate.create(this, onError);
         loader = new MovieClipLoader();
         loader.addListener(listener);
         loader.loadClip(url, target);
      }
      
      function onError()
      {
         trace("error");
      }
Тоне Муж.
новый человек
3
Сообщения: 37
Зарегистрирован: 06.01.07
Сообщение Добавлено: 27 Апрель 2007, 16:32:30 
sudya, я может конечно чего и не понимаю, но зачем делать надстройку над классом MovieClipLoader, который сам по себе полностью обеспечивает всю функциональность, которая Вам нужна?

_________________
Cheer up, meetbag!
*   Список форумов / Технологии изображения / Flash « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 3 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100