0

すでにセッション変数を設定しています。Flash が存在するかどうかを確認し、それ以外の場合はデフォルトでいくつかの値を使用できるようにする必要があります。

AS3でこれを行うにはどうすればよいですか?

4

2 に答える 2

1

Javascript 変数の場合は、次の actionscript コードを使用できます。

var sessionValue:String = ExternalInterface.call(String(<script>function(){ return sessionValue; };</script>));
trace("sessionValue:" + sessionValue); // output to debug window

Flash から JavaScript Cookie を読み取りたい場合は、これを使用してみてください (未テスト)。

trace("cookie 'sessionValue':" + readCookie("sessionValue")); // output to debug window

function readCookie(name:String):String { // quickly ported from http://www.quirksmode.org/js/cookies.html
 var nameEQ:String = name + "=";
 var cookie:String = ExternalInterface.call(String(<script>function(){ return document.cookie; };</script>));
 var ca:Array = cookie.split(';');
 for(var i:int = 0; i < ca.length; i++) {
    var c:String = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
 }
 return null;
}

ExternalInterface を利用できるようにするには、ブラウザー内でオンラインで実行し、フラッシュの埋め込みコードにallowscriptaccess含める必要があります。true

詳細:
Flash ExternalInterface : http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/external/ExternalInterface.html?filter_flash=cs5&filter_flashplayer=10.2&filter_air=2.6
Javascript Cookie : http://www .quirksmode.org/js/cookies.html

于 2012-07-23T09:08:42.087 に答える
1

FlashVars を介してセッション データを Flash に渡すことができます。

<object width="" height="">
    <param name="flashvars" value="sessionVar=sessionValue" />
    <embed src="file.swf?sessionVar=sessionValue" width="" height="" />
</object>

そして、AS3 でそれらを引き出します。

var embedData:Object = root.loaderInfo.parameters;
// Access via embedData.sessionVar

あるいは、セッション変数を保持する PHP スクリプトをセットアップし、URLLoader を使用して AS3 でそれらをリクエストすることもできます。

于 2012-07-23T07:49:17.257 に答える