allowfullscreenパラメータがfalseの場合は、全画面ボタンを削除したいと考えています。
param value="true" name="allowfullscreen"
ActionScript 3.0でフルスクリーンが許可されているかどうかを検出しますか?
その可能ならば誰もがその値を検出するために、知っていますか? loaderInfo.parametersには他のフラッシュバーが付属していません。
allowfullscreenパラメータがfalseの場合は、全画面ボタンを削除したいと考えています。
param value="true" name="allowfullscreen"
ActionScript 3.0でフルスクリーンが許可されているかどうかを検出しますか?
その可能ならば誰もがその値を検出するために、知っていますか? loaderInfo.parametersには他のフラッシュバーが付属していません。
EDITは:これは廃止されましたが(ためのハックだったFP 8.5/9)
あなたのプレイヤーが(THXの@mrdoob)フルスクリーン可用性を持っている場合は、以下を検出します:悲しいこと
var hasFullscreen:Boolean = (stage.hasOwnProperty("displayState"))
したいメンバーはそれはとてもように割り当てることができ
stage.displayState
です:
import flash.display.StageDisplayState;
....
stage.displayState = StageDisplayState.FULL_SCREEN;
stage.displayState = StageDisplayState.NORMAL;
は私が読書をお勧めします。
[編集:
男ああ、完全にあなたの質問を読み違え]
をあなただけの任意の知覚可能なちらつきなしでそれをテストするために例外メカニズムを使用することができますように見える少し試験後:。
try
{
stage.displayState = StageDisplayState.FULL_SCREEN;
stage.displayState = StageDisplayState.NORMAL;
} catch (error:SecurityError) {
// your hide button code
}
実際にドキュメントが不明ですActionScript 3でフルスクリーンモードがどのように検出されるかについては、
しか表示されません。フルスクリーンモードに切り替えようとすると例外が発生する場合がありますあなたが捕まえることができます。これで簡単にフルスクリーンモードのボタンを隠すことや表示することはできません。
"livedocs"は方法があるかもしれませんが、 "livedocs"は不完全または不完全であることはよく知られています。あなたはそれが戻ってこないことに注意:
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
}
編集:あなたがして、ルートオブジェクトの偶然に見ることによってデフォルトはfalse「フルスクリーン」のparamの値を読み取ることができるかもしれない
フラッシュバーで。
"これで簡単にフルスクリーンモードのボタンを非表示にすることはできません。"フルスクリーンモードを切り替えているときにSecurityExceptionを捕まえると、それは許可されません。 – bzlm
この質問には、「loaderInfo.parametersには他のフラッシュバーが付属していません」という質問があります。 – bzlm
ロジック。例外が発生しない場合はどうなりますか?ボタンを描く前に誰かがクリックされる前にモードを切り替えるようになりました。 もちろん:セキュリティモデルでは、ユーザーイベントによって開始されない限り、stage.displayStateを割り当てることはできません。はい、もっと編集するときに私はflashvarsビットを見逃しました。 – dlamblin
埋め込みにallowfullscreenがfalse/trueに設定されているかどうかを検出することはできません。
残念ながら、最終的なエラーをキャッチしてボタンを無効にするには、ユーザーがボタンをクリックするまで待つ必要があります。
まだ...フラッシュプレーヤーは、この値自体をと評価する必要があります。はおそらくそれを編集している必要があります。埋め込みをサードパーティが処理する場合は、フルスクリーンモードを許可するかどうかを決定する必要があります。このような場合は、余分なflash-varを追加するだけです(例:fullscreenButton = false)。
私が考えることができる唯一の方法は、ExternalInterface経由でJavaScript関数を呼び出すことです。 JavaScriptからFlash埋め込みパラメータを簡単に読み取ることはできますが、あなたのムービーが埋め込まれているHTMLにJSを挿入できるのであれば、それが何であるかを調べるよりもパラメータを変更したほうがいいと思います。
これ以外にも、stage.displayState = StageDisplayState.FULL_SCREEN;
はユーザーイベントによってのみトリガーされるという点を除いて、Jothamの解決策はOKと思われます。
フルスクリーンモードは、ユーザーによるマウスクリックまたはキー押下に応答して開始されます。ムービーはユーザー入力なしでStage.displayStateを変更することはできません。 (http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/display/Stage.html#displayState)
2番目のボタンを押すと、Jothamのコードが実行されます。とにかくユーザーがログインボタンやその他のボタンを押しています。
上記投稿は機能しません。 SWFがで:全画面表示が無効になっているとき
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);
}
});
}
}
}
はトレースします。
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.
問題がFull Screen Enabled? true
一部です。
私たちは厳重なセキュリティの設定ホストでフルスクリーンモードを可能にしようとしている上で私のテストから
_root.stage.addEventListener(FullScreenEvent.FULL_SCREEN, onFullScreenListenter);
に耳を傾けるようにしてくださいと、この機能をチェックできると信じて、それがヌル例外を返します。私はFullScreenEventが存在しないためだと思います。フルスクリーンがステージのプロパティを経由して許可されているかどうかをチェックすることができますAS3
FOR
SOLUTION、私の場合
try {
if (btn.stage["allowsFullScreen"]) { // if this fails, then its not allowed
// do full screen allow code here
btn.alpha = 1; // show since its allowed
}
} catch (error:Error) { // full scrren not allowed
btn.alpha = 0.5; // dim since it cant be used
}
stage.allowsFullScreenは10.2で追加されました。これは古いプレーヤー、これは私が見つけた最良の解決策です。私は以下を使用します:stage.hasOwnProperty( "displayState")&& stage.hasOwnProperty( "allowsFullScreen")&& stage ["allowsFullScreen"] –
このソリューションは、allowFullScreen = falseの場合でもdisplayStateプロパティを常に使用できるため、Flash 10.0でテストされているため、機能しません。 – sixones
2年前に投稿されましたが、プレーヤーのバージョンがこの機能を実際にサポートしているかどうかを検出するのが問題でしたが... kthx –