Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.05.2010, 18:09
camelot вне форума Посмотреть профиль Отправить личное сообщение для camelot Найти все сообщения от camelot
  № 1  
Ответить с цитированием
camelot

Регистрация: Jul 2006
Сообщений: 26
По умолчанию Огромный идиотский минус AVM1 в логике

Код AS1/AS2:
trace( NaN == 0 );
trace( NaN < 0 );
trace( NaN > 0 );
trace( NaN >= 0 );
trace( NaN <= 0 );
 
trace("result:" + ((NaN >= 0) == (NaN > 0 || NaN == 0))  );
Очень многим людям это должно послужить очень хорошим уроком.
Это просто гиганский маразм адоба в логике или баг среды выполнения.
компилил в mtasc и в cs4. дебаг плеер 10
на поиск этого маразма потратил 6 часов. пришлось огромный проект на запчасти разбирать


з.ы. или я где-то и чего то не понимаю?

Старый 19.05.2010, 18:49
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 2  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Nan >=0 - true.
Nan > 0 - undefined (false)
Nan == 0 - false

true == (false || false) ? false.

А вот сравнения NaNов и правда забавны.

Старый 20.05.2010, 01:30
camelot вне форума Посмотреть профиль Отправить личное сообщение для camelot Найти все сообщения от camelot
  № 3  
Ответить с цитированием
camelot

Регистрация: Jul 2006
Сообщений: 26
по логике, выражиние:
((NaN >= 0) == (NaN > 0 || NaN == 0)
должно быть:
false == (false || false) ? true

Старый 20.05.2010, 14:41
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
имо минус изначально в попытке сравнивать теплое с мягким

строку или мувиклип с нулем сравнивать не пробовали ?
ужасно нелогичные реультаты выдает

Старый 25.05.2010, 14:38
camelot вне форума Посмотреть профиль Отправить личное сообщение для camelot Найти все сообщения от camelot
  № 5  
Ответить с цитированием
camelot

Регистрация: Jul 2006
Сообщений: 26
Цитата:
Сообщение от silin Посмотреть сообщение
имо минус изначально в попытке сравнивать теплое с мягким

строку или мувиклип с нулем сравнивать не пробовали ?
ужасно нелогичные реультаты выдает
Код AS1/AS2:
trace( _root == 0 ); //false
trace( _root < 0 ); // undefined (false)
trace( _root > 0 ); // undefined (false)
trace( _root >= 0 ); // true
trace( _root <= 0 ); // true
 
trace( "ABC" == 0 ); // false
trace( "ABC" < 0 ); // undefined (false)
trace( "ABC" > 0 ); // undefined (false)
trace( "ABC" >= 0 ); // undefined (false)
trace( "ABC" <= 0 ); // undefined (false)
 
trace( _root._visible == 0 ); // false
trace( _root._visible < 0 ); // false
trace( _root._visible > 0 ); // true
trace( _root._visible >= 0 ); // true
trace( _root._visible <= 0 ); // false
 
trace({} == 0 ); // false
trace({} < 0 ); // false
trace({} > 0 ); // false
trace({} >= 0 ); // true
trace({} <= 0 ); // true
я конешно понимаю что вы один из лучших флешеров рунета а может быть всей земли.
я так же понимаю что сравнивается тёплое или мягкое с цифрой. но должна же быть система логики. почему логика стринга отличается от логики мувиклипа или логики НеЦифры ?

Старый 20.05.2010, 19:36
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 6  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
У меня NaN>=0 Flash 8 распознал как true.

Старый 25.05.2010, 14:55
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 7  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Какие моменты вас конкретно не устраивают?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 26.05.2010, 15:52
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 8  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Призадумался.
Код:
trace( _root == 0 ); //false OK
trace( _root < 0 ); // undefined (false) OK
trace( _root > 0 ); // undefined (false) OK
trace( _root >= 0 ); // true _root > 0 || _root ==0 - undefined || false - не очень ок

Старый 26.05.2010, 16:12
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 9  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Код:
trace( _root >= 0 ); // true _root > 0 || _root ==0 - undefined || false - не очень ок
Операция >= состоит из двух действий greaterThan и not, в рузльтате greaterThan дает undefined, а отрицания undefined дает true.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 26.05.2010, 16:45
camelot вне форума Посмотреть профиль Отправить личное сообщение для camelot Найти все сообщения от camelot
  № 10  
Ответить с цитированием
camelot

Регистрация: Jul 2006
Сообщений: 26
Цитата:
Сообщение от iNils Посмотреть сообщение
Код:
trace( _root >= 0 ); // true _root > 0 || _root ==0 - undefined || false - не очень ок
Операция >= состоит из двух действий greaterThan и not, в рузльтате greaterThan дает undefined, а отрицания undefined дает true.
а как вы объясните ?

Код AS1/AS2:
trace( "ABC" == 0 ); // false
trace( "ABC" < 0 ); // undefined (false)
trace( "ABC" > 0 ); // undefined (false)
trace( "ABC" >= 0 ); // undefined (false)
trace( "ABC" <= 0 ); // undefined (false)
greaterThan даёт undefined ?
а отрициание undefiened в данном конкретном случае даёт false?

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:09.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 03:09.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.