Вот пара глюков, которые нам удалось выявить во 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 данная проблема сохранилась :(. Будьте бдительны, а то можете потерять часик-другой при отладке.