Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Logical OR (http://www.flasher.ru/forum/showthread.php?t=76547)

Liar 07.03.2006 22:27

Logical OR
 
Всем привет :)
может ктонить подскажет, почему не работает следующая конструкция:

//-------------------------------------
switch (shape) {
case ("Shell" || "Cover")
//разные всякие операторы тут :)
break;
}
//-------------------------------------

тоесть она работает почемута только тогда, когда
var shape = "Cover", а если "Shell" - никак. может я туплю просто, но если подскажете - буду премного... :)

заранее muchas gracias :)

K.A.T.A.F.A.L.K.E.R 07.03.2006 22:52

Код:

switch (shape) {
case "Shell":
case "Cover":
//разные всякие операторы тут
break;
}


Iv 07.03.2006 22:54

зависит от версии плеера.
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
бред. иду спать.
надеюсь подсказал направление.

Iv 09.03.2006 21:38

нашел причину моей путанницы и в итоге написал багрепорт в макромедию.
причина - баг компиляции.
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
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.