ActionScriptでSWFの置かれているパスではなく、実際に表示されているページのパスを取得するにはJavaScript、またはPHPとの連携で可能になります。
Javascriptの場合
ActionScriptからJavascriptの関数を実行する「ExternalInterface」で行えます。
HTML内に、パスの値を返すJavaScriptの関数を加えます。
1
2
3
4
5
| <script type="text/javascript">
function getPath() {
return location.href;
}
</script> |
<script type="text/javascript">
function getPath() {
return location.href;
}
</script>
ActionScriptではJavaScriptの関数を実行して、戻り値を変数に格納します。
1
| var path:String = ExternalInterface.call("getPath"); |
var path:String = ExternalInterface.call("getPath");
PHP(&FlashVars)の場合
PHPでActionScriptに値を渡すには、FlashVarsを利用する方法が簡単です。
PHP内のFLASH埋め込みのコード内に、PHPで動的に取得したパス情報を、FlashVars経由でSWFに渡します。
1
| <param name="FlashVars" value="path=<?php echo "http://".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; ?>" /> |
<param name="FlashVars" value="path=<?php echo "http://".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; ?>" />
ActionScriptではFlashVarsの値を「loaderInfo.parameters」で取り出します。
1
2
| var param:Object = loaderInfo.parameters;
var path:String = param["path"]; |
var param:Object = loaderInfo.parameters;
var path:String = param["path"];
|