![]() |
Совершенно не понятная ошибка switch
Внутри класса использую свитч сдежующего типа
Код AS3:
Это что баг, или надо качать более свежий cs4? |
А это вообще должно работать? Ведь будут срабатывать сразу несколько case.
|
case не предназначен для скармливания ему выражений разных типов, поэтому может происходить что угодно. По логике такое не должно компилироваться.
А вообще бывают проблемы: я недавно словил VerifyError на вложенном for-each цикле, пытаясь сделать break внешнего из внутреннего, используя метки. |
битовые операции дают на выходе число. switch работает как ===. поэтому true никогда не будет равно 1.
|
Не, думаю, просто очередность выполнения - попробуйте обрамить скобками "()" выражения в кейсах.
Т.е.: Код AS3:
|
wvxvw, тьфу. неправильно взглянул. почему-то узрел, и увидел битовые операции :) всё равно смысл сообщения не меняется. 1 !== true.
|
Такими switch-ами вы сносите башню компилятору, потом verifier-у, потом и плееру.
Не выпендривайтесь, напишите, чтобы всем было понятно. |
Если прописывать варианты выбора как Boolean то все работает нормально. Лично я не вижу в этом ничего страшного. Данный подход часто применяю и в других средах. По мне так это гораздо компактнее и нагляднее чем условия
Код AS3:
Добавлено через 2 минуты Цитата:
|
И к чему этот рассказ про break? У вас может одновременно выполниться несколько условий в разных case - какой код будет выполнен и в каком порядке?
|
Строго в той последовательности в которой они расположены в коде
Код AS3:
|
На сколько я знаю, AS - строго типизированный язык, поэтому вполне естественно, что при сравнении логического и строкового, например, типа, вылетит ошибка
|
Он стал строго типизированным в AS3. А к базовым типам по умолчанию в большинстве случаев он сам приводит. Во всяком случае выражение
Код AS3:
|
так как if автоматически приводит к булевому значению. swtch же в вашем случаи конвертит код в вид if ( true === value ) и если value равно чему-то отличному от true у Вас всегда будет false.
|
ну получается не совсем false) Получается как и написал __etc ошибка в verifier. Вешается он, и возможно плеер
|
это не связанные вещи.
|
Ну на деле получается что на этапе исполнения когда он пытается сконвертить к
Код AS3:
|
на деле получается, что он генерит кривой байткод. это разные ошибки. как было замечено выше, он возникает у людей совершенно по разными причинам, и совершенно в разных местах. у меня например ошибка пропадала, от того, что я вставлял дополнительный перенос.
|
Спасибо за помощь)
|
| Часовой пояс GMT +4, время: 12:21. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.