Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Помогите перевести 2 строчки кода (http://www.flasher.ru/forum/showthread.php?t=177209)

HardCoder 26.03.2012 20:51

Помогите перевести 2 строчки кода
 
Здравствуйте, кто нибудь может перевести на удобочитаемый ActionScript 3 следующий сеттер. Он рабочий, только вот что он делает, понятия не имею:
Код AS3:

override public function set prop(value:Number):void {
        prop1 &&= (value == prop);
        super.prop = value | 0;
}


maxkar 26.03.2012 21:05

Очень похоже на
Код AS3:

override public function set prop(value:Number):void {
        if (value != prop)
            prop1 = false;
        super.prop = int(value);
}

Первая строчка - краткая запись
Код AS3:

prop1 = prop1 && (value == prop);

Вторая - какое-то странное побитовое OR, которое ни на что не виляет (новые биты не устанавливает). Это не результат работы обфускатора и декомпилятора?

HardCoder 26.03.2012 21:14

Цитата:

Сообщение от maxkar (Сообщение 1071276)
Это не результат работы обфускатора и декомпилятора?

Нет. Это открытые исходники. По крайней мере, так написано там где я скачивал. Спасибо, что откликнулись.

wvxvw 27.03.2012 00:41

Вторая строчка это быстрый способ преобразовать число с плавающей запятой в целое. То же самое, что int(x) или x >> 0 и т.п. Так работает потому, что побитовые операции определены только для целых чисел, и виртуальная машина приведет тип сама, для того, чтобы вычислить выражение. Лучше заменить на int(x): на пару значков больше писать, но по сути верно.

HardCoder 27.03.2012 08:45

wvxvw, спасибо.


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

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