![]() |
Logical OR
Всем привет :)
может ктонить подскажет, почему не работает следующая конструкция: //------------------------------------- switch (shape) { case ("Shell" || "Cover") //разные всякие операторы тут :) break; } //------------------------------------- тоесть она работает почемута только тогда, когда var shape = "Cover", а если "Shell" - никак. может я туплю просто, но если подскажете - буду премного... :) заранее muchas gracias :) |
Код:
switch (shape) { |
зависит от версии плеера.
trace(("Shell" || "Cover")) даст в разных плеерах разный результат. схема такая: по-моему начиная с 8ки непустые строки возвращают true в boolean операциях в 7ке любые строки возвращают false но судя по признакам ты публикуешь в восьмерку. т.е. твое выражение "Shell" || "Cover" в 8ке всегда вернет "Shell", (trace(("Shell" || "Cover"))) и далее происходит сравнение с case если равны, то выполняется. думаю, что дальше продолжать не надо. не... всё ботва... ща воткнул trace(("Shell" || "Cover")) дает Cover при этом trace((Boolean("Shell") || "Cover")) дает true бред. иду спать. надеюсь подсказал направление. |
нашел причину моей путанницы и в итоге написал багрепорт в макромедию.
причина - баг компиляции. trace(("Shell" || "Cover")) - дает "Cover" при этом var shell = "Shell" var cover = "Cover" trace(shell || cover) - дает "Shell" - и именно это правильно |
| Часовой пояс GMT +4, время: 13:09. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.