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

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

Wednesday, December 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.”. Тож Вам треба буде створити ще одну функцію.

Вивільняємо перший кадр. ActionScript 3.0

Friday, November 30, 2007

В ActionScript 2.0 щоб вивільнити перший кадр від класів та символів нам достатньо було в Publish settings вказати в який кадр експортувати класи, та в символах в бібліотеці поставити позначку “Не експортувати в перший кадр”. І тоді, навіть якщо ми покладемо в перший кадр компонент, то він зостанеться без коду і працювати не буде.

В ActionScript 3.0 це трошки не так, тому що в ньому є можливість задавати клас для головної флешки. І цей клас обов’язково повинен бути експортований в перший кадр. Решта класів експортується на той кадр, на який ми вказали, якщо на них немає посилань в головному класі та в коді на кадрах головної флешки. Тож або не перевантажуйте головний клас або робіть окрему флешку-завантажницю, що буде завантажувати головну, щоб користувачі таки побачили індикатор завантаження.