Просмотр полной версии : ключворд
Здрасьте.
Flash 8.
Начал писать ключворд (очень полезная вещь для мозгов). Нужна помощь и советы.
1) поругайте код
2) нужно ли здесь usecodepage?
3) осталось сделать выбор букв в нижней строке. Хочу щелкать по цифре и колесиком выбирать букву (сделать отображение букв из fullabc - текущего алфавита без уже угаданных букв), и когда нажимаешь еще раз буква которая выбрана фиксируется и все перерисовывается.
Как еще можно сделать ? и как повесить эти обработчики на ячейки? здесь главный затык.
за ссылки на примеры тоже буду благодарен.
спасибо
файл не прикрепился вот ссылка fla (http://www.a-bd.ru/temp/qwe.zip)
видимо в другой раздел. P.s. файл не прикрепил.
1) Ужасен;
2) Никогда и нигде.
Ссылка исправлена на прямую, почему нельзя было этого сделать самому — непонятно.
1) подскажи в чем ужас?
и как насчет вопроса №3
Ответа на номер три не будет в силу ответа на первый. Ужасно — значит, что он непонятен, жуткие переводы строк, расположение кавычек, названия функций, переменных, объявления переменных дважды, множественные обращения через массив, что не только ухудшает производительность, но и читабельность, превращая код в китайскую газету.
mmm... chineese newspaper. (HOMER)
объявления переменных дважды - не помню такого, разве локальные
множественные обращения через массив - просто другого лучшего способа организовать это - не вижу...
буду менять значения массива - а функции перерисовывают данные из массива...
Nils - пятняшки как-то давал - они тоже через массив
интересует почему не работает вот эта строка
this['cell'+i].onRelease = sss();
объявления переменных дважды - не помню такого, разве локальные
множественные обращения через массив - просто другого лучшего способа организовать это - не вижу...
Nils - пятняшки как-то давал - они тоже через массив
интересует почему не работает вот эта строка
this['cell'+i].onRelease = sss();
Локальные переменные надо объявлять один раз оператором var, а не двадцать раз в коде. Вместо множественных обращений достаточно создать ссылку на клип, потом обращаться по ссылке, а не сто раз копировать. А строчка не работает, потому что происходит не присвоение ссылки на функцию, а результат её выполнения.
Вместо множественных обращений достаточно создать ссылку на клип
Так:var obj = this['cell'+i];
obj.text='bla-bla'
а разве так память не будет расходоваться - это же доп. переменная...
и с функцией исправил - убрал () - теперь работает - но как мне узнать на какой клетке я нажал клавишу? можно ли как нить вытащить название мувика по которому щелкнул?
Многократное прямое обращение через модификаторы доступа сожрет процессорного времени в разы больше.
Насчет функции — либо по this._name внутри функции, либо использовать расширенный Delegate (на форуме полно тем про него).
обновил исходник - подправил с учетом твоих замечаний - глянь пож-та...
this._name пошла - теперь буду думать дальше...
спасибо.
Nils - пятняшки как-то давал - они тоже через массив
Это был не просто код, а сделанный под конкурс SWF <= 1024 байта, поэтому первоочередной задачей было сокращение конечного байт-кода, отсюда - использование приемов, которые я никогда и нигде применять не будут, но они дают преимущество в минимизации размеров swf.
понял - спасибо... уже исправил, исходник обновил...
счас бьюсь над обработчиками событий выбора букв в кроссворде...
вот результат выложил...
ключворд мозголом (http://www.a-bd.ru/temp/index.html)
жду нареканий :)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.