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

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

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

блогер
Регистрация: Jul 2007
Сообщений: 940
Записей в блоге: 3
Только не public переменные, а геттеры

Старый 08.06.2010, 16:37
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 2  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Цитата:
Сообщение от fljot Посмотреть сообщение
Только не public переменные, а геттеры
Сомнительно.


А я дурак, я делаю одно событие с var info:Object={} куда пишу всё что сдумается.

На самом деле просто посмотри, что ты там передаешь с событием. Например, количество игроков онлайн, открытые двери и год после рождества Христова. По сути, 3 разных переменных - totalOnline, openDoors, year, но ведь можно передать просто intValue, а в комментариях написать мол "а тут нам приходит..."

Старый 09.06.2010, 10:54
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 3  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от fljot Посмотреть сообщение
Только не public переменные, а геттеры
Досточно public-ов. От геттеров проку нет, событие всё равно клонируется постоянно.

Старый 09.06.2010, 16:12
fljot вне форума Посмотреть профиль Отправить личное сообщение для fljot Найти все сообщения от fljot
  № 4  
Ответить с цитированием
fljot

блогер
Регистрация: Jul 2007
Сообщений: 940
Записей в блоге: 3
Цитата:
Сообщение от etc Посмотреть сообщение
Досточно public-ов. От геттеров проку нет, событие всё равно клонируется постоянно.
Клонируется то клонируется, но это при бабблинге или в разных обработчиках. Но ведь можно изменить данные, если кто-то его передиспатчит, или внутри одного обработчика, или при передаче ("по ссылке") куда-то.

Старый 09.06.2010, 17:59
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от fljot Посмотреть сообщение
Клонируется то клонируется, но это при бабблинге или в разных обработчиках. Но ведь можно изменить данные, если кто-то его передиспатчит, или внутри одного обработчика, или при передаче ("по ссылке") куда-то.
И что? Если вы хотите наступить на грабли, вы на них наступите. Причем самостоятельно.

Старый 10.06.2010, 13:50
switcher! вне форума Посмотреть профиль Отправить личное сообщение для switcher! Найти все сообщения от switcher!
  № 6  
Ответить с цитированием
switcher!

Регистрация: May 2009
Сообщений: 220
Цитата:
Сообщение от etc Посмотреть сообщение
Досточно public-ов. От геттеров проку нет, событие всё равно клонируется постоянно.
Цитата:
Сообщение от fljot Посмотреть сообщение
Клонируется то клонируется, но это при бабблинге или в разных обработчиках...
что-то я, видимо, не понимаю. Не замечал, чтобы событие при баблинге клонировалось. По крайней мере, в дисплейобджектах.
Если все правильно про клонирование, то как/когда это происходит при нативном всплытии события?

Вот пример того, что наблюдаю я:
Код AS3:
package
{
	import flash.display.Sprite;
	import flash.events.Event;
 
	public class Example extends Sprite
	{
		private var _event:MyEvent;
 
		function Example() {
			super();
 
			var s1:Sprite = new Sprite();
			var s2:Sprite = new Sprite();
			var s3:Sprite = new Sprite();
 
			super.addChild(s1);
			s1.addChild(s2);
			s2.addChild(s3);
 
			s1.addEventListener(Event.CHANGE, this._test1);
			s2.addEventListener(Event.CHANGE, this._test2);
 
			s3.dispatchEvent(new MyEvent(Event.CHANGE, true));
		}
 
		private function _test1(e:MyEvent):void {
			trace(e.info); //10
			trace(this._event === e); //true
		}
 
		private function _test2(e:MyEvent):void {
			trace(e.info); //5
			e.info = 10;
			this._event = e;
		}
	}
}
Код AS3:
package  
{
	import flash.events.Event;
 
	public class MyEvent extends Event
	{
		public var info:int;
 
		function MyEvent(type:String, bubbles:Boolean = false, info:int = 5, cancelable:Boolean = false) {
			super(type, bubbles, cancelable);
 
			this.info = info;
		}
 
		// монжно раскомментить - трейсы те же.
		/*override public function clone():Event {
			return new MyEvent(super.type, super.bubbles, 20)
		}*/
	}
}

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

Теги
flash , Лень , Проектирование , события

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

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


 


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


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