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

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

п’ятниця, Березень 21, 2008

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

вівторок, Лютий 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

субота, Лютий 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

неділя, Грудень 23, 2007

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

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

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

четвер, Грудень 20, 2007

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