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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.12.2007, 06:10
Pecher вне форума Посмотреть профиль Отправить личное сообщение для Pecher Найти все сообщения от Pecher
  № 1  
Ответить с цитированием
Pecher
 
Аватар для Pecher

Регистрация: Jun 2005
Адрес: Bryansk
Сообщений: 73
По умолчанию создать MyEvent

Как создать собственное событие, чтобы к сообщению можно было прицепить дополнительные переменные?

В документации написано, надо переопределить clone():
Код:
  
class PingEvent extends Event {
    var URL:String;
   
    public override function clone():Event {
         return new PingEvent(type, bubbles, cancelable, URL);
    }
}
У меня такое не работает. Пишет, что у класса Event нет конструктора по умолчанию.
__________________
Flash can do it.

Старый 08.12.2007, 08:10
miramax вне форума Посмотреть профиль Отправить личное сообщение для miramax Посетить домашнюю страницу miramax Найти все сообщения от miramax
  № 2  
Ответить с цитированием
miramax
 
Аватар для miramax

Регистрация: Oct 2005
Адрес: Борисоглебск
Сообщений: 1,702
Отправить сообщение для miramax с помощью ICQ Отправить сообщение для miramax с помощью AIM Отправить сообщение для miramax с помощью MSN Отправить сообщение для miramax с помощью Yahoo Отправить сообщение для miramax с помощью Skype™
Вот пример кастомного события:
Код:
  
public class PingEvent extends Event {
    public var URL:String;
    public function PingEvent(type:String, URL:String)
    {
          super(type);
          this.URL = URL
    }

    public override function clone():Event {
         return new PingEvent(type, URL);
    }
}
А clone() нужно переопределять - для того что бы возвращать дубликат уже отловленого события.
Например послали DataEvent, приняли в хендлере и что бы дальше его же переслать нужно его клонировать. Т.к. к созданному событию можно применить метод EventDispatcher.dispatchEvent() только 1 раз.

Ошибка в твоём коде происходит потому, что ты не указал явно конструктора PingEvent. Это значит что будет юзаться неявный способ. Неявный конструктор пытается вызвать конструктор супер класса Event. Но, в конструкторе new Event() есть обязательный параметр type:String, который не передаётся неявным конструктором.
__________________
AS3 | www.FLAPS.ru | Русские флэшеры самые умные флэшеры в мире. ©

Старый 08.12.2007, 20:02
Pecher вне форума Посмотреть профиль Отправить личное сообщение для Pecher Найти все сообщения от Pecher
  № 3  
Ответить с цитированием
Pecher
 
Аватар для Pecher

Регистрация: Jun 2005
Адрес: Bryansk
Сообщений: 73
Большое спасибо за подробное разъяснение!
Правда это не мой код, а код из документации флэш
Я просто не знал, что есть конструкция super(type). Привык использовать super.func();
Конец
__________________
Flash can do it.

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

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

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


 


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


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