Статті, які підпадають під теґ ‘Flash IDE’

Як за допомогою [embed] вбудувати swf з кодом

Friday, March 21, 2008

Ми знаємо, що при вбудуванні swf за допомогою теґу [Embed] увесь код, який був у swf-ці, втрачається. Є один спосіб як зберегти код.

Спочатку створимо у Flash IDE флешку, головним класом якої буде, наприклад, assets.Flea. В цьому класі є метод startJumping(), який просто починає програвання флешки. Назвемо файл flea.swf.

Тепер вбудуємо flea.swf в будь-який клас у Flex-проекті:

	[Embed("assets/flea.swf", mimeType="application/octet-stream")]
	private var FleaAsset:Class;

mimeType=”application/octet-stream” дає зрозуміти компілятору Flex, що вбудування потрібно робити без будь-якої конвертації даних.

Тепер в FleaAsset ми маємо клас ByteArrayAsset, тобто, практично ByteArray.

Далі завантажуємо екземпляр FleaAsset до Loader за допомогою loadBytes():

	var currLoader:Loader = new Loader();
	var ldrContext:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain);
	currLoader.loadBytes( new FleaAsset(), ldrContext );

ldrContext ми використовуємо, щоб бути впевненими, що клас, який знаходиться в FleaAsset буде тим самим, що і в Flex проекті.

Далі, щоб клас із FleaAsset з’явився для нашого використання, нам потрібно почекати один кадр. Це не дуже добре, але як це обійти я не знаю.

	var sprite:Sprite = new Sprite();
	sprite.addEventListener(Event.ENTER_FRAME, enterFrameHandler);

Далі, ми просто створюємо екземпляр класу assets.Flea та використовуємо його як забажаємо. Уся графічна частина цього класу, яку ми створили у Flash IDE, буде присутня :)

import assets.Flea;
function enterFrameHandler(event:Event):void
{
	var flea:Flea = new Flea();
	addChild(flea);
	flea.startJumping();
	sprite.removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
}

Я зробив приклад такої собі бібліотеки, яка може спростити роботу з убудованими swf.

Щоб знати більше раджу почитати це (англійською):

Не експортовані шари все рівно створюють кадри

Tuesday, February 5, 2008
  1. Створіть 2 шари.
  2. Один з них зробіть довжиною в 20 кадрів, та позначте його як Guide.
  3. На іншому напишіть код:
    trace(totalFrames);
    або
    trace(_totalFrames);
    для ActionScript 2.0

В output ви будете отримувати “20″ кожні 20 кадрів :)

Теж саме діється, якщо перший шар позначити як невидимий і в налаштуваннях паблішингу зняти галочку “Export hidden layers” (ця опція з’явилась у Flash CS3).

TextField, що створений у Flash IDE

Saturday, February 2, 2008

Маємо:

  1. Створений руцями TextField, з ім’ям fleaT, та синього кольору (#0000FF);
  2. Код у першому кадрі:
    /*
    removeChildAt(0); // deleting the texfield created by hands
    fleaT = new TextField();
    addChild(fleaT);
    */
    
    var tf:TextFormat = new TextFormat();
    tf.color = 0xFF0000;
    fleaT.setTextFormat(tf);
    fleaT.defaultTextFormat = tf;
    
    fleaT.textColor = 0xFF0000;
    
    fleaT.htmlText = "TextField<font color='#00FF00'> flea</font>";

Якби це було загадкою, і треба було відповісти яким кольором будуть слова у текстовому полі, то я б відповів, що слово “TextField” буде червоним (#FF0000), а “flea” – зеленим (#00FF00). Але ця відповідь буде вірною, якщо перші три рядки не будуть закоментовані (якщо TextField буде створено за допомогою ActionScript). А без перших рядків слово “TextField” буде синього кольору (#0000FF), тобто тим кольором який ми призначили руцями.

Невеличка хитрість з бібліотекою у Flash IDE

Sunday, December 23, 2007

Що до мене, то я звик, коли продивляючи файли з теками, теки розташовуються спочатку, а потім ідуть файли. Особливо якщо було вибрано сортування за типом. Але у Flash IDE це не так. Якщо навіть вибрати сортування за типом, то символи типу Button будуть розташовані вище тек.

Для себе я вирішив цю проблему додаючи пробіл на початку імені теки. Таким чином при сортуванні за ім’ям всі теки розташовуються вгорі. І цим же я виключаю можливість конфлікту імен, адже Flash IDE не дозволяє створити теку і символ з однаковим ім’ям.

Малюнками, створеними руцями у Flash IDE, можна керувати за допомогою ActionScript

Thursday, December 20, 2007

Усі наші малюнки у Flash IDE перетворюються в Shape. Звернутися до них можна за допомогою, наприклад, методу DisplayObjectContainer.getChildAt(). Цікаво, що усе намальоване стає одним екземпляром класу Shape, навіть якщо малюнки знаходяться в групах або являють собою Drawing Object або знаходяться на різних шарах. За одним винятком: якщо між малюнками немає мувікліпу.