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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.05.2012, 15:12
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 11  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Самый нормальный и правльный вариант - это закэшировать и нормально сравнивать, ей-боту. Незачем придумывать якобы удобные велосипеды, которые не несут оптимизации, кроме экономии места на экране (не на бумаге же пишете туалетной, которой редко когда хватает, хех).
__________________
тут я

Старый 24.05.2012, 15:49
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 12  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Ну вот если бы вопрос был про флаги...
Код AS3:
const FLAG_A:uint = 0x0001;
const FLAG_B:uint = 0x0002;
const FLAG_C:uint = 0x0004;
const ALL_FLAGS:uint = FLAG_A | FLAG_B | FLAG_C;
 
var abcd:uint = FLAG_B;
if (abcd & ALL_FLAGS)
    trace("OMG");

Старый 24.05.2012, 17:43
RJ Presto вне форума Посмотреть профиль Отправить личное сообщение для RJ Presto Найти все сообщения от RJ Presto
  № 13  
Ответить с цитированием
RJ Presto

Регистрация: Nov 2007
Сообщений: 55
Код AS3:
if([20, 30, 0].indexOf(a.b.c.d) != -1)
этот вариант, кстати, не будет работать, если вдруг в a.b.c.d лежит String

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

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Цитата:
Сообщение от RJ Presto Посмотреть сообщение
Код AS3:
if([20, 30, 0].indexOf(a.b.c.d) != -1)
этот вариант, кстати, не будет работать, если вдруг в a.b.c.d лежит String
А кто додумается сравнивать строку с integer?

Добавлено через 2 минуты
Чтобы работало - нужно будет написать:
Код AS3:
if(["20", "30", "0"].indexOf(a.b.c.d) != -1)
и все работает...
__________________
Я мало чего умею, но зато хорошо умею учиться...

Старый 24.05.2012, 18:20
MikroAcse вне форума Посмотреть профиль Отправить личное сообщение для MikroAcse Найти все сообщения от MikroAcse
  № 15  
Ответить с цитированием
MikroAcse
 
Аватар для MikroAcse

Регистрация: Feb 2012
Сообщений: 1,540
Цитата:
Добавлено через 2 минуты
Чтобы работало - нужно будет написать:
Код AS3:
if(["20", "30", "0"].indexOf(a.b.c.d) != -1)
и все работает...
Не легче тогда уже:
Код AS3:
if([20, 30, 0].indexOf(int(a.b.c.d)) != -1)

Старый 24.05.2012, 18:32
RJ Presto вне форума Посмотреть профиль Отправить личное сообщение для RJ Presto Найти все сообщения от RJ Presto
  № 16  
Ответить с цитированием
RJ Presto

Регистрация: Nov 2007
Сообщений: 55
Цитата:
Сообщение от HardCoder Посмотреть сообщение
А кто додумается сравнивать строку с integer?
если вы, например, работаете с каким-либо внешним API - никогда нельзя быть увереным, что какое-нибудь поле в ответе не превратится внезапно из int в String

Старый 24.05.2012, 18:50
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 17  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Какая разница? Хорошо, получили мы строку, например "10". Вы правы, этот метод не сработает:
Код AS3:
if([10, 30, 0].indexOf(a.b.c.d) != -1)
Поэтому ее нужно привести в int. По вашему вот это, что-ли сработает?:
Код AS3:
if(a.b.c.d == 10)
В этом случае тоже не сработает. Все равно придется приводить строку к числу.
Учитывая контекст данной темы, мне просто стало интересно к чему было это сообщение?:
Код AS3:
этот вариант, кстати, не будет работать, если вдруг в a.b.c.d лежит String
Добавлено через 6 минут
Забираю свои слова назад. Действительно, этот вариант в данном случае сработает
Код AS3:
if(a.b.c.d == 10)
Добавлено через 7 минут
но в этом случае - нет:
Код AS3:
if(a.b.c.d === 10)
__________________
Я мало чего умею, но зато хорошо умею учиться...

Старый 24.05.2012, 18:59
RJ Presto вне форума Посмотреть профиль Отправить личное сообщение для RJ Presto Найти все сообщения от RJ Presto
  № 18  
Ответить с цитированием
RJ Presto

Регистрация: Nov 2007
Сообщений: 55
Код AS3:
if(a.b.c.d == 10)
этот метод сработает, потому что ==, в отличие от ===, делает каст аргументов к строке при сравнении.
http://help.adobe.com/en_US/FlashPla....html#equality

попробуйте сами
Код AS3:
// массив, чтоб компилятор не ругался на несоответствие типов при сравнении в trace
var b:Array = [10,"10"];
trace(b[0] == b[1]);
Цитата:
Учитывая контекст данной темы, мне просто стало интересно к чему было это сообщение?
просто предупредил о потенциальной проблеме, если вдруг кто захочет этим методом воспользоваться.
хотя все подходы, кроме 1. и 2. во втором посте - от лукавого.

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

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Цитата:
Сообщение от RJ Presto Посмотреть сообщение
просто предупредил о потенциальной проблеме, если вдруг кто захочет этим методом воспользоваться
Да теперь, уже понял, просто, я сначала написал, а потом решил проверить
__________________
Я мало чего умею, но зато хорошо умею учиться...

Старый 25.05.2012, 00:09
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 20  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Лучше бы к строке приводили.

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

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

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


 


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


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