|
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
П - переносимость.
|
|
|||||
Использование getDefinitionByName для инициализации мувиков, по сути на лету, что есть плохой практикой.
Да и бог знает, на что повешен этот слушатель, если мы тащим не currentTarget, а target. У меня чувство, что на stage. В таком случае если класс мувика, не имеющего MC партнёра, имеет имя, начинающегося на b, и на него нажали(случайно, скажем), код сгенерит рантайм ошибку. Ну и да, переносимость. Код ведь должен быть писан так, чтобы его можно было затем использовать в последующих проектах.
__________________
There is no thing in this world that is not simple. |
|
|||||
var objectName:String = event.target.toString(); var digitPart:String = objectName.match( /\d+/)[0]; // выдаст что-то типа 01, 02... в зависимости от имени класса var ClipClass:Class = getDefinitionByName("MC" + digitPart) as Class; mc_1 = new ClipClass(); function myClick(event: MouseEvent): void { var name:String = flash.utils.getQualifiedClassName(event.target); if(name.charAt(0).toLowerCase() != "b") return; var num:String = name.substr(name.lastIndexOf("_") + 1); var SomeMC:Class = flash.utils.getDefinitionByName("MC" + num); mc_1 = new SomeMC(); }
__________________
Я заклинаю вас действовать иначе. |
|
|||||
О, точняк! Я тоже за этот способ! Только вот так.
Но у этого способа есть 1 ограничение - нельзя использовать больше одного символа подчёркивания в имени кнопки.
__________________
There is no thing in this world that is not simple. |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
хоспаде,объясните уже тс'у, что его подход в корне неверен.
Хотя он, судя по всему, сам потерял интерес. |
|
|||||
undefined, почему неверен? Человек явно не хочет писать тонну лишнего кода, в эти 6 строк он экономит уйму времени.
Если мне важно сделать что-то быстро, и не париться насчёт кода потом вообще, я мог бы сделать и так. В случае, если с этим кодом потом не нужно будет работать. Добавлено через 36 минут А, не заметил. Такое не прокатит, ибо там закрывающая квадратная скобка. Нужно юзать getQualifiedClassName() либо парсить регулярками.
__________________
There is no thing in this world that is not simple. |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
Цитата:
сколько это строк? |
|
|||||
А, так он за этим же и написал на форум, мол, подскажите, как не писать это пятьдесят раз, для каждой кнопки и мувика.
Я думаю, он и сам догадался, что это китайский код, раз попросил "унифицировать")
__________________
There is no thing in this world that is not simple. |
|
|||||
Если ты не обратил внимание, то мой код, откуда взята эта строчка, как раз и использует регулярку. При чем она там всего одна и очень простая /\d+/
__________________
Ко мне можно и нужно обращаться на ты) |
Часовой пояс GMT +4, время: 11:45. |
|
« Предыдущая тема | Следующая тема » |
|
|