Глюки Flash

Автор: Topol Понедельник, Апрель 16th, 2012 Нет комментариев

Рубрика: Флеш-технологии

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

Источник: woweb.ru

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты