Архів для категорії ‘ActionScript 2.0’

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

вівторок, Лютий 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), тобто тим кольором який ми призначили руцями.

Загадка по ActionScript 2.0

понеділок, Грудень 24, 2007

Загадка від Іллі Паніна:

Маємо:

1. Клас, ActionScript 2.0:

class fleas.puzzles.OneMore
{
	public var link:String;
	public function OneMore(_url:String)
	{
		link = _url;
	}
}

2. Код:

import fleas.puzzles.OneMore;
var flea:OneMore = new OneMore('megaurl.com');
trace(flea.link);

Що буде в output?

(more…)

Не правильне використання ExternalIntarface призводить до його, майже непомітного, падіння

середа, Грудень 5, 2007

Маємо (завантажити приклад):

  1. Дві функції в JavaSript: jsFunc_1 та jsFunc_2.
  2. Дві функції в ActionScript: asFunc_1 та asFunc_2.
  3. Для ActionScript функції додано колбеки через ExternalInterface.addCallback().
  4. В функції jsFunc_1 є виклик asFunc_1.
    В функції asFunc_1 є виклик jsFunc_2.
    В функції jsFunc_2 є виклик asFunc_2.
    Тобто якщо викликати jsFunc_1, то повинен бути такий ланцюг викликів: jsFunc_1 > asFunc_1 > jsFunc_2 > asFunc_2.

Блоха з’являється на другій ланці. При спробі викликати jsFunc_2 нічого не відбувається. Ніякої помилки ні в ActionScript ані в JavaScript немає. І тільки ExternalInterface.call() при цьому Вам поверне null. Але якщо JavaScript функція нічого не повинна повертати, то цей результат не викличе підозри на помилку.

Вирішення:

Уникайте подібних ланцюгів викликів використовуючи, наприклад, setTimeout(), як в цьому прикладі.
Але й тут будьте обережні! Викликати ExternalInterface.call() через setTimeout() не можливо. Отримаєте помилку “SecurityError: Error #2000: No active security context.”. Тож Вам треба буде створити ще одну функцію.

new MovieClip() це вам не attachMovie(), і це добре :)

четвер, Листопад 29, 2007

Якщо в бібліотеці однієї флешки (child) ми маємо мувікліп, що експортується для ActionScript (linkagedSymbol), і ми завантажуємо її в іншу (mother), то в ActionScript2.0, за допомогою attachMovie(), ми можемо створити примірник linkagedSymbol’у тільки всередені флешки child. А в ActionScript3.0, використовуючи оператор new ми вже можемо створювати примірники де завгодно. Тобто зараз є можливість створювати бібліотеки символів у вигляді swf, багато разово їх використовуючи.