![]() |
Огромный идиотский минус AVM1 в логике
Код AS1/AS2:
Это просто гиганский маразм адоба в логике или баг среды выполнения. компилил в mtasc и в cs4. дебаг плеер 10 на поиск этого маразма потратил 6 часов. пришлось огромный проект на запчасти разбирать з.ы. или я где-то и чего то не понимаю? |
Nan >=0 - true.
Nan > 0 - undefined (false) Nan == 0 - false true == (false || false) ? false. А вот сравнения NaNов и правда забавны. |
по логике, выражиние:
((NaN >= 0) == (NaN > 0 || NaN == 0) должно быть: false == (false || false) ? true |
имо минус изначально в попытке сравнивать теплое с мягким
строку или мувиклип с нулем сравнивать не пробовали ? ужасно нелогичные реультаты выдает |
У меня NaN>=0 Flash 8 распознал как true.
|
Цитата:
Код AS1/AS2:
я так же понимаю что сравнивается тёплое или мягкое с цифрой. но должна же быть система логики. почему логика стринга отличается от логики мувиклипа или логики НеЦифры ? |
Какие моменты вас конкретно не устраивают?
|
Призадумался.
Код:
trace( _root == 0 ); //false OK |
Код:
trace( _root >= 0 ); // true _root > 0 || _root ==0 - undefined || false - не очень ок |
Цитата:
Код AS1/AS2:
а отрициание undefiened в данном конкретном случае даёт false? |
mtasc выдает
Код AS1/AS2:
IDE-шный компилятор для >= и <= дает тоже undefined (т.е. невыполнимость опреации, а вовсе не false), можно предположить, что выполнение прерывается на стадии lt/gt без выполнения not |
Если посмотреть на байткод который выдал компилятор ide
Код:
push FALSEВот если бы вы написали Код AS1/AS2:
|
Цитата:
|
Чем не устраивает isNaN
Зачем городить сравнения вообще. |
Цитата:
бывает случаи когда переменная не инициализирована или другого типа и получается так, что это приводит к очень печальным последствиям. например при восходящем или нисходящем приведении типа когда ссылка на мувиклип или объект превращается в undefiened или null. а если вы ещё и работаете с динамическими данными и трудно поймать такое условие - вам будет стоить громадных усилий и времени поймать в чем проблема. например: Код AS1/AS2:
в результате cтроки: Код AS1/AS2:
з.ю. ради бога, не придирайтесь к примеру. выдумал по быстрому |
Смысла ругать avm1 уже нет, ее развитие остановлено. А AS3 существует уже не первый год.
|
| Часовой пояс GMT +4, время: 13:34. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.