Вот пара глюков, которые нам удалось выявить во Flash 5. На деле их гораздо больше, но не все удается "поймать". Итак...
Проблема "Я"
Данная проблема относится только ко 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 данная проблема сохранилась :(. Будьте бдительны, а то можете потерять часик-другой при отладке.