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

Вернуться   Форум Flasher.ru > Блоги > Котяра

Рейтинг: 5.00. Голосов: 4.

AS3 для AVM1

Запись от Котяра размещена 15.01.2010 в 18:00
Обновил(-а) Котяра 01.03.2010 в 09:50

Выкладываю AS2 либу эмулирующую as3 синтаксис.
что есть:
Sprite, Event, EventDispatcher, Loader (thanx 2 wvxwv)
в планах добавить Timer, эвенты мыши и еще кое-что по мелочи
вот листинг теста: (это AS2)
Код AS3:
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);
	}
 
}
AS3_For_AVM1.zip
Всего комментариев 6

Комментарии

Старый 02.06.2010 22:37 Котяра вне форума
Котяра
 
Аватар для Котяра
исправил - поменял друг с другом свойства currentTarget и target - оказывается я их перепутал.
Старый 14.08.2010 14:44 in4core вне форума
in4core
 
Аватар для in4core
и зачем это надо?! Зачем делать из АС2 - АС3 ? когда АС3 есть )) Зачем из велсипеда делать самолет ( если самолет и так изобретен) . Непонятно вообщем для чего
Старый 14.08.2010 16:53 Psycho Tiger вне форума
Psycho Tiger
 
Аватар для Psycho Tiger
Для привычного удобного синтаксиса, когда нужно писать под 7-8 версии флеш плееров.
Старый 08.09.2010 03:32 Котяра вне форума
Котяра
 
Аватар для Котяра
Я это делал для новых AS2 проектов, которые являются частью большого комплекса на ас2 и нет никакой возможности писать их сразу на ас3, но возможность переписывания " в будущем" существует. Да и просто - это то, чего не хватает (особенно событий).
Также полезно если нужно портировать что-то несложное из ас3 в ас2 (да - такое тоже бывает иногда)
Старый 21.12.2010 21:41 КорДум вне форума
КорДум
 
Аватар для КорДум
Цитата:
и зачем это надо?! Зачем делать из АС2 - АС3 ? когда АС3 есть
Для тех, у кого рабочая платформа не поддерживает ас3, а хочется именно его.
Старый 30.04.2011 03:10 djyamato вне форума
djyamato
 
Аватар для djyamato
для души
Спасибо
 

 


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


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