![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2001
Сообщений: 151
|
Не могу понять, можно ли с помощью пользовательского event'а не просто разослать сообщение, что он был, но и передать какие-то данные.
Вот такой пример. Пытаюсь, скажем, сделать текстовое поле с логом сообщений, приходящих заранее неизвестно из какой части программы: package com.log { import flash.events.*; import flash.text.TextField; import flash.display.Sprite; public class Log extends Sprite { public static const ADD_LOG:String = 'add_log'; private var log:TextField = new TextField(); public function Log(p:Sprite) { p.addChild(log); p.stage.addEventListener(Log.ADD_LOG, addLog); } public function addLog (e:Event):void { log.appendText(e.target.msg+"\n"); } } } ......... public var msg:String; ........... log = new Log(this); ............ msg = 'Что-то там'; dispatchEvent(new Event(Log.ADD_LOG, true)); Например, из класса, которого вообще нет в списке отображения? Видимо, нужно строку сообщения как-то прицепить к самому event'у. Кажется, должно быть что-то простое и очевидное, но в примерах ничего не нахожу. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Создайте свое собственное событие LogEvent.
|
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
примерно так:
package ru.globo.gui.views.scoresWindow.events { import flash.events.Event; /** * ... * @author 111 */ public class TeamButtonEvent extends Event { public static const TEAM_BUTTON_CLICKED:String = "TeamButtonClicked"; public var teamName:String; public function TeamButtonEvent(type:String, $teamName:String, bubbles:Boolean=false, cancelable:Boolean=false) { super(type, bubbles, cancelable); teamName = $teamName; } public override function clone():Event { return new TeamButtonEvent(type, teamName, bubbles, cancelable); } public override function toString():String { return formatToString("TeamButtonEvent", "type", "teamName", "bubbles", "cancelable", "eventPhase"); } } }
__________________
Отряд Котовскага |
|
|||||
|
Регистрация: Feb 2001
Сообщений: 151
|
Спасибо.
Н-да, час от часу не легче, так и знал. Спрашивается, почему такую очевидно востребованную вещь было не заложить в AS3 изначально. Раньше написал бы _root.log.text += 'ла-ла-ла' Теперь сидеть, городить страницу кода. Что ж, будем работать... |
|
|||||
|
Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
|
Так возможность наследования от Event и реализация своего события и заложена изначально (в частном случае) - чем тут быть недовольным... Зато по гибкости и удобству - ни в какое сравнение не идет с тем, как вы бы написали раньше.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 20:22. |
|
|
« Предыдущая тема | Следующая тема » |
|
|