Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 09.09.2012, 03:08
olexandr вне форума Посмотреть профиль Отправить личное сообщение для olexandr Посетить домашнюю страницу olexandr Найти все сообщения от olexandr
  № 11  
Ответить с цитированием
olexandr
 
Аватар для olexandr

Регистрация: Aug 2007
Адрес: Ukraine, Kyiv
Сообщений: 643
Отправить сообщение для olexandr с помощью ICQ Отправить сообщение для olexandr с помощью MSN Отправить сообщение для olexandr с помощью Skype™
"пробросить" в моем понимании, это - dispatch(e.clone()) - просто продиспатчить копию события
можно сразу передавать проценты - e.bytesLoaded / e.bytesTotal
как передавать - тоже масса вариантов. можно добавить параметр в кастомное событие, можно сделать приватную переменную для этого с публичным геттером.
__________________
сайт, vk

Старый 09.09.2012, 03:50
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 12  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Цитата:
Сообщение от olexandr Посмотреть сообщение
можно добавить параметр в кастомное событие, можно сделать приватную переменную для этого с публичным геттером.
DataEvent - тоже вариант.

Старый 09.09.2012, 12:34
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 13  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
"пробросить" в моем понимании, это - dispatch(e.clone()) - просто продиспатчить копию события
clone вызовется у "е" сам, если написать
Код AS3:
dispatchEvent(e);
__________________
тут я

Старый 09.09.2012, 13:09
olexandr вне форума Посмотреть профиль Отправить личное сообщение для olexandr Посетить домашнюю страницу olexandr Найти все сообщения от olexandr
  № 14  
Ответить с цитированием
olexandr
 
Аватар для olexandr

Регистрация: Aug 2007
Адрес: Ukraine, Kyiv
Сообщений: 643
Отправить сообщение для olexandr с помощью ICQ Отправить сообщение для olexandr с помощью MSN Отправить сообщение для olexandr с помощью Skype™
Цитата:
Сообщение от КорДум Посмотреть сообщение
clone вызовется у "е" сам, если написать
Код AS3:
dispatchEvent(e);
раньше я тоже так писал, но периодически возникала необъяснимая ошибка на стадии выполнения
мне дали совет, писать clone в таких случаях - больше такой ошибки у меня не было
__________________
сайт, vk

Старый 09.09.2012, 13:12
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 15  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
раньше я тоже так писал, но периодически возникала необъяснимая ошибка на стадии выполнения
Мистика. Достаточно посмотреть дебаггером, чтобы понять, что разницы нет. Это как у инта вызывать toString() при конкатенации со строкой. Так и здесь - неявный вызов clone().
__________________
тут я

Старый 09.09.2012, 17:38
Abdilxamidov вне форума Посмотреть профиль Отправить личное сообщение для Abdilxamidov Найти все сообщения от Abdilxamidov
  № 16  
Ответить с цитированием
Abdilxamidov

Регистрация: Mar 2009
Адрес: Киев
Сообщений: 95
Цитата:
Сообщение от КорДум Посмотреть сообщение
clone вызовется у "е" сам, если написать
"пробросить" в моем понимании, это - dispatch(e.clone()) - просто продиспатчить копию события
Спасибо.
я правильно понял, что это нужно прописать в обработчике ProgressEvent в 1-м классе,
и потом во втором классе в "e" уже будет передаваться из первого процессниг загрузки?

Вот есть одни класс Apparat, в нем вот обработчик URLLoadera


Код AS3:
private function progress_phpLoader(e:ProgressEvent):void {
   dispatch(e.clone());
}
Вот есть другой класс, в нем пишу:

Код AS3:
private var Apparat1:Apparat = new Apparat();
...
Apparat1.addEventListener(Apparat.DATA_1_2_PROGRESS, dataLoading);
private function dataLoading(e:ProgressEvent):void {
 percent = e.bytesLoaded/e.bytesTotal*100);
}
Т.е. percent будет хранить процент в первом классе загруженных данных, так?

Старый 09.09.2012, 18:01
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 17  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
В Apparat у вас такой код:
Код AS3:
private function loader_progressHandler(event:ProgressEvent):void {
    dispatchEvent(new ProgressEvent(Apparat.DATA_1_2_PROGRESS, false, false, event.bytesLoaded, event.bytesTotal));
}
А в классе, который ловит это событие (переменные по конвенции принято с маленькой буквы называть):
Код AS3:
apparat1.addEventListener(Apparat.DATA_1_2_PROGRESS, apparat1_data12ProgressHandler);
...
private function apparat1_data12ProgressHandler(event:ProgressEvent):void {
  // юз проперти от event, Люк!
}
То есть Apparat у нас диспатчит событие ProgressEvent с типом Apparat.DATA_1_2_PROGRESS и теми же самыми свойствами, что находятся в event непосредственно от лоадера.

Следует упомянуть мне, что если типов для прогресса всего лишь один, может стоит воспользоваться обычным передиспатчиванием, а не создавать другой экземпляр ивента (не клона)? То есть тупо такая штука.
Код AS3:
_loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS /*или как там*/, dispacthEvent);
__________________
тут я

Старый 09.09.2012, 18:32
Abdilxamidov вне форума Посмотреть профиль Отправить личное сообщение для Abdilxamidov Найти все сообщения от Abdilxamidov
  № 18  
Ответить с цитированием
Abdilxamidov

Регистрация: Mar 2009
Адрес: Киев
Сообщений: 95
Цитата:
Следует упомянуть мне, что если типов для прогресса всего лишь один, может стоит воспользоваться обычным передиспатчиванием, а не создавать другой экземпляр ивента (не клона)? То есть тупо такая штука.

Код AS3:
_loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS /*или как там*/, dispacthEvent);
Да, прогресс один. А в какое место это писать?

Старый 09.09.2012, 18:35
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 19  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Где к лоадеру подписывались раньше.

Добавлено через 1 минуту
Ну и ловить надо будет уже не Apparat.DATA_1_2_PROGRESS, а ProgressEvent.PROGRESS, естественно.
__________________
тут я

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:17.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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