Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   getUserSettings проверка битовой маски (http://www.flasher.ru/forum/showthread.php?t=133491)

parl 07.12.2009 03:07

getUserSettings проверка битовой маски
 
Как можно реализовать проверку битовой маски?
Приложению нужно выставить следующие настройки:
  • +1 – пользователь разрешил отправлять ему уведомления.
  • +2 – доступ к друзьям.
  • +4 – доступ к фотографиям.
  • +8 – доступ к аудиозаписям.
При запросе getUserSettings вернет 15 - делаем проверку if( user_set == 15 ) {все ок }, но если пользователь даст приложению дополнительные права, например +256 – доступ к меню слева, то как быть в этой ситуации?

Может быть существуют какие-нибудь особые методы проверки битовой маски?

wvxvw 07.12.2009 03:41

Код AS3:

var bitMask:uint = 0xA; //10 dec 1010 bin
trace(bitMask >>> 0x1 & 0x1); // 1 first bit
trace(bitMask >>> 0x2 & 0x1); // 0 second bit
trace(bitMask >>> 0x3 & 0x1); // 1 third bit
trace(bitMask & 1); // 0 forth bit


etc 07.12.2009 07:57

wvxvw, да ты извращенец :)

Код AS3:

trace(Boolean(flags & (1 << 0))); // уведомления
trace(Boolean(flags & (1 << 1))); // друзья
trace(Boolean(flags & (1 << 2))); // фото
trace(Boolean(flags & (1 << 3))); // аудио


udaaff 07.12.2009 11:35

Код AS3:

trace(Boolean(flags & 1)); // уведомления
trace(Boolean(flags & 2)); // друзья
trace(Boolean(flags & 4)); // фото
trace(Boolean(flags & 8)); // аудио


parl 07.12.2009 14:56

Спасибо! Первый ответ поверг меня в ужас )))

etc 07.12.2009 18:24

udaaff, я бы всё же оставил свой вариант, как наглядно показывающий, какой из битов проверяется.

wvxvw 07.12.2009 19:05

Цитата:

Сообщение от etc (Сообщение 870675)
wvxvw, да ты извращенец :)

Мммм... ну, вобщем, да, не самый лучший вариант :)

Цитата:

Сообщение от parl (Сообщение 870768)
Спасибо! Первый ответ поверг меня в ужас )))

Ну прям можно подумать, вместо одной операции - две, так прямо ужасно?

udaaff 07.12.2009 19:07

Цитата:

Сообщение от etc (Сообщение 870852)
udaaff, я бы всё же оставил свой вариант, как наглядно показывающий, какой из битов проверяется.

В документации указаны именно битовые маски, поэтому знать о том какой конкретно бит выбирается для проверки необязательно.

etc 07.12.2009 19:09

Цитата:

Сообщение от udaaff (Сообщение 870873)
В документации указаны именно битовые маски, поэтому знать о том какой конкретно бит выбирается для проверки необязательно.

Да пофиг на доку, по индексам понятнее :)

Ralph_DiMarko 18.12.2009 15:06

напишите кто нить для АС2 или объясните логику плиииз

----
ой! уря! заработало и так по АС3 коду,


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

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