Обнаружение, если полный экран позволяется в ActionScript 3.0?

Для MySQL, поскольку 2 не является ни 1, ни 0, то 2 не является ни TRUE, ни FALSE. Рассмотрим:

SELECT 2 = TRUE, 2 = FALSE;

Это возвращает:

| 2 = TRUE | 2 = FALSE |
| -------- | --------- |
| 0        | 0         |

Вам нужно будет выразить условие по-разному, например:

SELECT data FROM table WHERE active > 0

Это также будет работать (любой не значение равно нулю, см. далее):

SELECT data FROM table WHERE active;

Это поведение описано в руководстве , в котором говорится:

[ 1112]

Эти типы являются синонимами для TINYINT(1). Нулевое значение считается ложным. Ненулевые значения считаются истинными.

blockquote>
mysql> SELECT IF(0, 'true', 'false');
+------------------------+
| IF(0, 'true', 'false') |
+------------------------+
| false                  |
+------------------------+

mysql> SELECT IF(1, 'true', 'false');
+------------------------+
| IF(1, 'true', 'false') |
+------------------------+
| true                   |
+------------------------+

mysql> SELECT IF(2, 'true', 'false');
+------------------------+
| IF(2, 'true', 'false') |
+------------------------+
| true                   |
+------------------------+

Однако значения TRUE и FALSE являются просто псевдонимами для 1 и 0 соответственно, как показано здесь:

blockquote>
mysql> SELECT IF(0 = FALSE, 'true', 'false');
+--------------------------------+
| IF(0 = FALSE, 'true', 'false') |
+--------------------------------+
| true                           |
+--------------------------------+

mysql> SELECT IF(1 = TRUE, 'true', 'false');
+-------------------------------+
| IF(1 = TRUE, 'true', 'false') |
+-------------------------------+
| true                          |
+-------------------------------+

mysql> SELECT IF(2 = TRUE, 'true', 'false');
+-------------------------------+
| IF(2 = TRUE, 'true', 'false') |
+-------------------------------+
| false                         |
+-------------------------------+

mysql> SELECT IF(2 = FALSE, 'true', 'false');
+--------------------------------+
| IF(2 = FALSE, 'true', 'false') |
+--------------------------------+
| false                          |
+--------------------------------+

6
задан bzlm 18 March 2009 в 22:18
поделиться

6 ответов

РЕДАКТИРОВАТЬ: Это устарело сейчас (был взлом для FP 8.5 / 9)

Следующее обнаружит, если Ваш плеер имеет полноэкранный режим (thx @mrdoob):

var hasFullscreen:Boolean = (stage.hasOwnProperty("displayState"))
-3
ответ дан 18 December 2019 в 04:56
поделиться

Участник, которого Вы хотите,

stage.displayState

Как это можно присвоить так:

import flash.display.StageDisplayState;

....

stage.displayState = StageDisplayState.FULL_SCREEN;
stage.displayState = StageDisplayState.NORMAL;

Я рекомендую читать:

http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000352.html

[Редактирование:

О, человек, полностью неправильно читает Ваш вопрос.]

После небольшого теста похоже, что можно просто использовать механизм исключения для тестирования на него без любого заметного мерцания:

try
{
    stage.displayState = StageDisplayState.FULL_SCREEN;
    stage.displayState = StageDisplayState.NORMAL;
} catch ( error:SecurityError ) {
// your hide button code            
}
2
ответ дан 18 December 2019 в 04:56
поделиться

Вы не можете обнаружить, если встраивание имеет набор allowfullscreen к ложному/верному.

К сожалению, необходимо будет ожидать, пока пользователь не нажмет на кнопку, чтобы зафиксировать возможную ошибку и таким образом отключить кнопку.

Все еще... Необходимо быть в совершенно особом контексте, чтобы потребовать, чтобы flashplayer оценили это значение само, когда Вы, вероятно, отредактировали его. В случае, если встраивание обрабатывается третьим лицом, которое должно смочь решить, должен ли полноэкранный режим быть позволен или нет. Если это верно, просто добавьте дополнительный var флэш-памяти (например, fullscreenButton=false).

0
ответ дан 18 December 2019 в 04:56
поделиться

Единственный метод, о котором я могу думать, должен был бы вызвать функцию JavaScript через ExternalInterface. Можно легко читать, флэш-память встраивают параметры от JavaScript, но я думаю, могли ли Вы вставить JS в HTML, Ваш фильм встраивается, Вы изменили бы параметр, чем попытку узнать, каково это.

Кроме этого, решение Jotham кажется хорошо кроме факта это stage.displayState = StageDisplayState.FULL_SCREEN; может только быть инициирован пользовательским событием.

Полноэкранный режим инициируется в ответ на щелчок мышью или нажатие клавиши пользователем; фильм не может изменить Stage.displayState без ввода данных пользователем. (http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/display/Stage.html#displayState)

У Вас должна быть вторая кнопка, которая при нажатии выполняет код Jotham. Я пошел бы для кнопки входа в систему или любой другой кнопки, которую пользователь нажмет так или иначе.

0
ответ дан 18 December 2019 в 04:56
поделиться

На самом деле документы неясны относительно того, как позволяемый полноэкранный режим или не может быть обнаружен в ActionScript 3.

Единственная вещь, которую они упоминают, состоит в том, что, если Вы действительно пытаетесь переключиться на полноэкранный режим и он запрещен, затем Вы получите исключение, которое можно поймать. Это легко не позволит Вам скрывать или показывать кнопку полноэкранного режима.

Может быть путь, но "livedocs" являются известно неполными или краткими.

Вы смогли читать значение "полноэкранного" param который значения по умолчанию ко лжи путем рассмотрения параметров корневого объекта с:

var keyStr:String;
var valueStr:String;
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;
for (keyStr in paramObj) {
valueStr = String(paramObj[keyStr]);
//do something with this information
}

Править: Вы отметили, что это не возвращается в flashvars.

0
ответ дан 18 December 2019 в 04:56
поделиться

Sadly, the above post does not work. A swf with:

package {
    import flash.display.Sprite;
    import flash.display.StageDisplayState;
    import flash.events.Event;
    import flash.events.MouseEvent;

    public class Tester extends Sprite {
        public function Tester() {
            trace("Display States: Full="+StageDisplayState.FULL_SCREEN+"; Normal="+StageDisplayState.NORMAL);
            trace( "- Display State? "+stage.displayState);
            trace( "- Full Screen Enabled? "+(stage.hasOwnProperty("displayState")) );
            stage.addEventListener( MouseEvent.CLICK, function(evt:Event=null):void {
                trace("Attempting to change to FullScreen...");
                try {
                    stage.displayState = StageDisplayState.FULL_SCREEN;
                    trace("Success!");
                    stage.displayState = StageDisplayState.NORMAL;
                } catch(e:*) {
                    trace("Fail! "+e);
                }
            });
        }

    }
}

Will trace when FullScreen is disabled:

Display States: Full=fullScreen; Normal=normal
- Display State? normal
- Full Screen Enabled? true
Attempting to change to FullScreen...
Fail! SecurityError: Error #2152: Full screen mode is not allowed.

The problem being the Full Screen Enabled? true part.

0
ответ дан 18 December 2019 в 04:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: