|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Тогда во всем практически понял, кроме подробного описания dispatchEvent и создания своих событий. Огромное спасибо. Скилл +10..
|
|
|||||
Читал Мука, самое обидное, что перескочил через эту главу, подумал, что мне не понадобятся собственные события...
Весы - любопытная штука |
|
|||||
.
|
Цитата:
Это так, к слову. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Цитата:
Так же не очень понятен момент с Таймером - зачем каждому экземпляру личные наручные часы, когда есть куранты на башне? Разве нельзя их все подписывать на один таймер - тикает себе и тикает. Спрайт эти тики все-равно не считает, а следит только за своей прозрачностью, так что неважно, попадет он на период 0-100 или 214-314 тиков.
__________________
Reality.getBounds(this); |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
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)); } } } } 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); |
|
|||||
Никак не научусь вовремя замечать пейджер страниц |
Часовой пояс GMT +4, время: 20:44. |
|
« Предыдущая тема | Следующая тема » |
Теги |
circle , timer , Таймер , Шар |
|
|