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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.06.2011, 22:55
Lyso вне форума Посмотреть профиль Отправить личное сообщение для Lyso Посетить домашнюю страницу Lyso Найти все сообщения от Lyso
  № 31  
Ответить с цитированием
Lyso

Регистрация: Sep 2010
Адрес: Красноярск
Сообщений: 217
Отправить сообщение для Lyso с помощью Skype™
Тогда во всем практически понял, кроме подробного описания dispatchEvent и создания своих событий. Огромное спасибо. Скилл +10..

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

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Для спасиба есть кнопочка с весами =)
А вообще, Мука почитайте. Или просто в хелп загляните.
__________________
тут я

Старый 02.06.2011, 22:58
Lyso вне форума Посмотреть профиль Отправить личное сообщение для Lyso Посетить домашнюю страницу Lyso Найти все сообщения от Lyso
  № 33  
Ответить с цитированием
Lyso

Регистрация: Sep 2010
Адрес: Красноярск
Сообщений: 217
Отправить сообщение для Lyso с помощью Skype™
Читал Мука, самое обидное, что перескочил через эту главу, подумал, что мне не понадобятся собственные события...
Весы - любопытная штука

Старый 02.06.2011, 23:10
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 34  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от КорДум Посмотреть сообщение
А вообще, нужно переделать структуру этого блока:
родитель создает экземпляры детей, подписывая их на кастомное событие removeMe. Ребенок, в нужный момент диспатчит событие removeMe, родитель слушает и удаляет его из себя (и из массива, если ребенки помещались в массив).
Не совсем согласен. Родитель на основе некоторых критериев может удалить ребенка. Ребенок напрямую не может приказать родителю удалить его (идеологически неверно названо событие REMOVE_ME. Следовало бы назвать его READY_TO_REMOVE). Тем более неверно удаляться самому ребенку из иерархии родственников.

Это так, к слову.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Полностью согласен с дополнением Димарика. Если планируется условное удаление, то есть, в нужный момент, а не только, потому что ребенок хочет.
__________________
тут я

Старый 02.06.2011, 23:23
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 36  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
ничего страшного не должно произойти.
Если речь о сотне спрайтов, меняющих по таймеру прозрачность и – что немаловажно – накладывающихся при этом друг на друга, тормоза вполне оправданы.
Так же не очень понятен момент с Таймером - зачем каждому экземпляру личные наручные часы, когда есть куранты на башне? Разве нельзя их все подписывать на один таймер - тикает себе и тикает. Спрайт эти тики все-равно не считает, а следит только за своей прозрачностью, так что неважно, попадет он на период 0-100 или 214-314 тиков.
__________________
Reality.getBounds(this);

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

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Все, большие дяди пришли. Сейчас тут наоптимизируют. И правильно сделают, почитайте, вам пригодится )
__________________
тут я

Старый 03.06.2011, 00:27
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 38  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Код AS3:
package  
{
	import flash.display.Sprite;
	import flash.events.Event;
 
	public class SnowFlake extends Sprite
	{
		private static const ALPHA_STEP:Number = 1 / 256;
		public function SnowFlake() 
		{
			this.graphics.beginFill(0xFFFFFF);
			this.graphics.drawCircle(10, 10, 20);
		}
		public function update(event:Event):void
		{
			this.alpha -= ALPHA_STEP;
			if (this.alpha <= 0)
			{
				this.dispatchEvent(new Event(Event.COMPLETE));
			}
		}
	}
 
}
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.TimerEvent;
	import flash.utils.Timer;
 
	public class Main extends Sprite 
	{
		private var _timer:Timer = new Timer(50);
		private var _snowTimer:Timer = new Timer(10);
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			stage.align = StageAlign.TOP_LEFT;
            stage.scaleMode = StageScaleMode.NO_SCALE;
			stage.showDefaultContextMenu = false;
			// entry point
			_timer.addEventListener(TimerEvent.TIMER, createSnowFlake);
			_timer.start();
			_snowTimer.start();
		}
 
		private function createSnowFlake(event:TimerEvent):void 
		{
			var s:SnowFlake = new SnowFlake();
			_snowTimer.addEventListener(TimerEvent.TIMER, s.update);
			s.addEventListener(Event.COMPLETE, killSnowFlake);
			addChild(s);
			s.x = stage.stageWidth * Math.random();
			s.y = stage.stageHeight * Math.random();
		}
 
		private function killSnowFlake(event:Event):void 
		{
			var s:SnowFlake = event.currentTarget as SnowFlake;
			_snowTimer.removeEventListener(TimerEvent.TIMER, s.update);
			s.removeEventListener(Event.COMPLETE, killSnowFlake);
			this.removeChild(s);
			s = null;
		}
	}
}
__________________
Reality.getBounds(this);

Старый 03.06.2011, 11:32
BuKT вне форума Посмотреть профиль Отправить личное сообщение для BuKT Найти все сообщения от BuKT
  № 39  
Ответить с цитированием
BuKT
 
Аватар для BuKT

блогер
Регистрация: Dec 2010
Сообщений: 237
Записей в блоге: 5
Цитата:
Сообщение от КорДум Посмотреть сообщение
Код AS3:
parent.removeChild(this);
Если на то пошло.
Код AS3:
var _parent = this.parent;
if (_parent instanceOf MovieClip){
    _parent.removeChild(this);
}
Так должно без ошибок компилиться

Никак не научусь вовремя замечать пейджер страниц

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

Теги
circle , timer , Таймер , Шар
Опции темы
Опции просмотра

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

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


 


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


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