Логотип    
Логотип
 

Flash promo!


Rambler's Top100
Статьи, уроки  

Глюки Flash

Вот пара глюков, которые нам удалось выявить во Flash 5. На деле их гораздо больше, но не все удается "поймать". Если вам известны какие-нибудь еще глюки (читай - баги) Flash 5 или Flash MX - напишите нам, пожалуйста! Итак...

Проблема "Я"

Данная проблема относится только ко Flash 5 (ну и, может быть, к прошлым версиям). Во Flash MX она устранена, также в тексте правильно отображается кириллица (русские буквы).

Если в текстовой строке внутри Action script'a попадется строчная русская буква "я", то , при компиляции, flash выдаст сообщение о том, что строка закончена неправильно и пропустит скрипт текущего кадра, оставив графику. Видимо это флэшовый глюк, и исправлять его придется самим, причем программно… Скорее всего, способов его устранения множество, мы предлагаем 2 проверенных:

1-й способ: добавление к тексту кода "chr(255)", вместо буквы "я"

У Вас есть строка:
text1="--- Проблема буквы я ---";

Вставляем код таким образом:
text1="--- Проблема буквы "+chr(255)+" ---";

Этот способ оправдывает себя только при небольших текстах. Если в тексте встречается множество "я" то строки получаются слишком громоздкие.

2- способ: замена в тексте буквы "я" на любой "ненужный" символ, и обратно

Берем символ "~" и заменяем на него все "я"

было:
text1="--- Проблема буквы я ---";

получилось:
text1="--- Проблема буквы ~ ---";

А в процессе работы меняем символ "~" на "я", к примеру, так:

//здесь назначаем "ss" как подстроку строки ( "text1" , с i -ого символа, длинной в 1 символ )
ss = substring(text1, i, 1);

//если попалась "~" , переназначаем..
if (ss == "~") ss = chr(255);

P.S. Видимо, в самом редакторе Flash текстовая строка будет выглядеть "--- I?iaeaia aoeau y ---" и это нормально =)

Коды символов можно посмотреть в Windows: Пуск -> Стандартные -> Служебные -> Таблица символов . Внизу окна будет показан код выбранного символа. Windows XP, показывает код в шестнадцатиричной системе (к примеру, 0xE0) (преобразовать в 10-чную можно в калькуляторе)

Проблема неправильной интерпретации комментариев в экспертном режиме

Этот баг, наверное, стоил немалых усилий Macromedia :) Суть его состоит в том, что когда в экспертном режиме редактирования мы ставим комментарии справа от if или for, комментарий интерпретируется как инструкция, а содержимое скобок почему-то из них выпадает.

У вас есть следующего вида код:

if (s == 25) // попадание в нужную точку
{
gotoAndPlay(30);
}

Попробуйте перевести редактор в "нормальный" режим редактирования. У вас получится:

if (s == 25) {
// попадание в нужную точку
}
gotoAndPlay(30);

В следствие чего if будет жить отдельной жизнью, а gotoAndPlay отдельной. Вне зависимости от режима редактирования скрип выполняется одинаково: проверка параметра s не приносит никаких результатов, а gotoAndPlay вызывается всегда. Наверное, этот баг происходит оттого, что Flash интерпретирует комментарии как отдельную инструкцию. В любом случае, мы посоветуем вам быть осторожней с комментариями на одной строчке с другими инструкциями. Пишите лучше так:

// попадание в нужную точку
if (s == 25)
{
gotoAndPlay(30);
}

К сожалению, во Flash MX данная проблема сохранилась :(. Будьте бдительны, а то можете потерять часик-другой при отладке.

Список статей

 Обзор Flash 8 (new!)
 Flash и видео
 Adobe LiveMotion 2: Русский help
 Adobe LiveMotion 2: Первое знакомство
 Swift 3D v.3
 Swift 3D v.2
 Swift 3D XSI v.1
 Новое во Flash MX
 Flash 5 (обзор)
 Flash 5 (анимация)
 Flash 5 (ActionScript)
 Оптимизация Flash
 Глюки Flash

Уроки Flash

 Программное управление звуком
 Рисование с помощью ActionScript во Flash MX
 Создание и использование кнопок
 Передача данных из Flash в сценарии
 Загрузка текста и переменных во Flash
 Определение скорости компьютера
 Определение Flash
 Создаём часы
 Всё о "прелоадерах"
 Снег во Flash
 Ещё о "прелоадере"

наверх // в начало (C). rastyle.com // 2002-2017 // all rights reserved