AS3 для AVM1
Выкладываю AS2 либу эмулирующую as3 синтаксис.
что есть:
Sprite, Event, EventDispatcher, Loader (thanx 2 wvxwv)
в планах добавить Timer, эвенты мыши и еще кое-что по мелочи
вот листинг теста: (это AS2)
import flash.display.Sprite; import flash.events.MouseEvent; /** * Тестовый пример * Main выступает в качестве базового класса * (прописана в первом фрэйме таймлайна): * new Main(this); * @author k0t0vich */ class Main extends Sprite { private var box:Sprite; private var spriteList:Array; public function Main($parent) { super($parent); // тест аттача - ок // super($parent, "Main"); // тест параметров - ок x = 200; y = 200; // тест addChild - ok spriteList = []; for (var i:Number = 0; i <10 ; i++) { // тест кастомных спрайтов - ок var sprite:CustomSprite = new CustomSprite(this); spriteList.push(sprite); sprite.x = 10*i; addChild(sprite); // тест вложенных } // тест повторного addChild - ok var sp2:Sprite = spriteList[2]; addChild(sp2); // тест вложенных - ok sp2.addChild(new Sprite(sp2, "Arrow")); // тест addChildAt - ok box = new Sprite(this, "BoxSprite"); addChildAt(box, 3); //тест swapChildren - ок swapChildren(spriteList[6], box); // тест setChildIndex, numChildren - ок setChildIndex(spriteList[1], numChildren - 1); // тест - IllegalIndex - ок try { setChildIndex(spriteList[1], numChildren); } catch (e:Error) { trace("setChildIndex Error: "+e); } // тест removeChild - ок removeChild(sp2); // тест removeChildAt - ок removeChildAt(0); // тест - IllegalIndex - ок try { removeChildAt(10); } catch (e:Error) { trace("removeChildAt Error: "+e); } box.addEventListener(MouseEvent.CLICK, traceEvent, this); box.addEventListener(MouseEvent.ROLL_OVER, traceEvent3, this); } private function traceEvent3(e:MouseEvent):Void { trace("Main.traceEvent3 > e : " + e); } private function traceEvent(e:MouseEvent):Void { trace("Main.traceEvent > e : " + e); e.currentTarget.removeEventListener(MouseEvent.CLICK, traceEvent, this); // вешаем 2 листенер trace("remove"); //FIXED: прикольная ситуация - диспетчеризация обрабатывается по списку, и в этот же список добаляется следующий листенер, который и вызывается box.addEventListener(MouseEvent.CLICK, traceEvent2, this); } private function traceEvent2(e:MouseEvent):Void { trace("Main.traceEvent2 > e : " + e); e.currentTarget.removeEventListener(MouseEvent.CLICK, traceEvent2, this); e.currentTarget.removeEventListener(MouseEvent.ROLL_OVER, traceEvent3, this); } }
Всего комментариев 6
Комментарии
![]() ![]() |
|
исправил - поменял друг с другом свойства currentTarget и target - оказывается я их перепутал.
|
![]() ![]() |
|
и зачем это надо?! Зачем делать из АС2 - АС3 ? когда АС3 есть )) Зачем из велсипеда делать самолет ( если самолет и так изобретен) . Непонятно вообщем для чего
|
![]() ![]() |
|
Для привычного удобного синтаксиса, когда нужно писать под 7-8 версии флеш плееров.
|
![]() ![]() |
|
Цитата:
и зачем это надо?! Зачем делать из АС2 - АС3 ? когда АС3 есть
|
![]() ![]() |
|
для души
![]() Спасибо |
Последние записи от Котяра
- Страх и ненависть в Нью-Дели или сборка мультипака для arm7 и x86 c Adobe AIR 14 в FB (16.06.2014)
- Нативный EventDispatcher в старлинге (27.11.2013)
- Нужны ошибки компиляции при создании экземпляра синглетона извне? Запросто! (13.09.2013)
- ARP - новый формат упаковки ресурсов (07.02.2013)
- DropShadowFilter и GlowFilter в Starling (16.01.2013)