![]() |
Неколько простых вопросов по Event.
Доброго времени суток. В AC3 я совсем нуб.
Подскажите как мне отловить событие скрытие элемента типа MovieClip - то есть visible = false через addEventListener. Как устанавливать прослушиватель я разобрался, но вот на какое событие вешать выполнение функции не могу найти. И еще подскажите как в выполняемую функцию передавать кроме Event собственные параметры (переменные). Желательно просто кусов кода с addEventListener. И еще. Насчет собственных эвентов. Есть MovieClip с именем mp1, на 60 фрейме прописываю: this.dispatchEvent(new Event("myAlertEvent")); В первом фрейме Scene1 ставлю прослушку кодом: this.mp1.addEventListener("myAlertEvent , f_AlertFunc); Событие не срабатывает, думаю все несколько сложнее. Помогите начинающему, можно ссылками на мануалы или примером кода. Заранее огромное спасибо. |
Цитата:
1) Для клипа, который должен оповещать у своем скрытии, написать класс унаследованнй от MovieClip. 2) В нем переопределить set visible и рассылать свое собственное событие Код AS3:
Добавлено через 6 минут Цитата:
Чо каксается вашего примера, то у меня все работает. может вы что-то не правильно описали? |
Разобрался с dispatchEvent и с событием скрытия MovieClip через все тот же dispatchEvent.
- написать собственнй класс события унаследованный от Event, который будет иметь еще одно поле с данными Можно поподробнее как создавать наследников класса в AC3 и потом работать с ними |
Код AS3:
Код AS3:
а в листенере так будет Код AS3:
Почитайте про пользовательские события. |
Про пользовательские события я уже разобрался, но все равно огромное спасибо. Сейчас более интресует возможность отсылать в функцию вызываемую addEventListener
при событии "complete" в объекте типа URLLoader кроме стандартного Event, собственные переменные. Поясню. Есть URLLoader загружающий в цикле картинки в определенные MovieClipы (Pan_1, Pan_2, Pan_3, Pan_"Type1", где переменная Type1 берется из mysql базы). На данный момент он не работает - картинки не выводятся на MovieClip. Код AS3:
Код AS3:
|
Оформите код тегами AS3
|
Цитата:
|
Ну как вариант:
написать свой класс MyLoader наследник от Loader, который будет делать то же самое, только будет иметь дополнительное поле dest_clip - клип,в который аттачится картинка будет. Тогда в листенере можно будет его достать как Код AS3:
|
Вполне разумно. Вопрос: расширение классов осуществляется только через подключаемый as файл, в котором может быть например такое:
Код AS3:
Для расширения компонента URLLoader на переменную CompName типа String - этого достаточно? |
Нужно отдельный файл с классом создавать. Да и вообще предпочтительнее код в классах писать, а не в кадрах.
Цитата:
|
Огромное Вам спаибо. Разобрался. Cобытие срабатывает, получаю имя компонента из параметра расширенного URLLoader'а, но не могу отобразить картинку. Не подскажите в чем могут быть грабли.
Вот тут происходит реакция на событие complete URLLoaderEx (URLLoader) Код AS3:
|
Для загрузки картинок класс Loader используется. (еще раньше удивилась, чего вы вдруг URLLoader начали расширять).
Ну и я обычно выдираю из e.target.content битмап-дату и создаю для нее новый битмап со смузингом Код AS3:
|
Переделал для Loader и исп. битмап-дату как Вы написали, но Image не выводтся... Черт, в чем же может быть проблема? В типе файла PNG?
Код AS3:
|
-пройдитесь трейсом (есть ли битмапдата, какой у нее размер, есть ли ваш MC)
-проверте на простом примере загрузить вашу картинку (просто одну) -попробуйте вместо Код AS3:
Код AS3:
И еще Код AS3:
|
Выяснил, что при исп. Loader, вместо URLLoader соыбтие "complete" не генерируется и собстно IOErrorEvent.IO_ERROR тоже.
Кстать, флеха должна качать файлы с сервака. Указываю путь для скачивания: А если после вызова Loader, прописать Pan.addChild(LoaderEx); - картинка появляется Код AS3:
|
Цитата:
А картинка появляется как раз после генерации события COMPLETE - т.к. Loader является наследником DisplayObject'а. |
Gal4enochek, а зачем делать новуюбитмапдату для смузинга?
Качество картинок, что дает loader весьма отличное, или я не понимаю чего?) |
Psycho Tiger, я так делаю просто, если потом битмап скейлить нужно будет. Иначе битое изображение выходит.
Добавлено через 3 минуты Правда можно просто smoothing конечно выставить. Просто во многих случаях именно сама битмапдата нужна для дальнейшей обработки, вот по привычке и выдираю ее из лоадера :rolleyes:, а потом где нужно использую. |
| Часовой пояс GMT +4, время: 21:46. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.