特定のイベントがトリガーされるとアラートウィンドウがポップアップするAdobeFlashBuilderを使用してアプリを開発しています。アラートボックスが閉じているときに、別のイベントを呼び出す必要があります。しかし、mx.controlsライブラリにAlertクラスが表示されません。(AS2に存在していた)クラスがAS3から削除されたようです。同じ機能を実現する他の方法はありますか?
ありがとう、Pritesh
特定のイベントがトリガーされるとアラートウィンドウがポップアップするAdobeFlashBuilderを使用してアプリを開発しています。アラートボックスが閉じているときに、別のイベントを呼び出す必要があります。しかし、mx.controlsライブラリにAlertクラスが表示されません。(AS2に存在していた)クラスがAS3から削除されたようです。同じ機能を実現する他の方法はありますか?
ありがとう、Pritesh
アラートコントロールのcloseHandlerを定義する必要があります。ここからActionScript3.0リファレンスAPIをチェックアウトしますhttp://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/controls/Alert.html#show()
外部インターフェイスを使用します。
import flash.external.ExternalInterface;
// tell flash what javascript function to listen for, and what flash function to call in response
ExternalInterace.addCallback('onAlertWindowClosed', onPopupClosed);
function openPopUp():void
{
// this conditional prevents errors when running local (yes, this needs uploaded to work)
if(ExternalInterface.available)
{
// this calls a javascript function in your html
ExternalInterface.call('myJavascriptAlertFuntion');
}
}
// this function is called from the javascript callback **onAlertWindowClosed**
function onPopupClosed():void
{
// do something when your popup closes
}
そしてhtmlで:
<script type="text/javscript>
// this chunk gets the flash object so you can call its methods
function getFlashMovieObject(movieName)
{
if (window.document[movieName])
{
return window.document[movieName];
}
if (navigator.appName.indexOf("Microsoft Internet") == -1)
{
if (document.embeds && document.embeds[movieName])
return document.embeds[movieName];
}
else
{
return document.getElementById(movieName);
}
}
// function that is called from flash
function myJavascriptAlertFuntion()
{
alert("Hey! Yeah you there!");
}
// call this when you want to tell flash you are closing your popup
function tellFlashMyPopupWindowClosed()
{
// **flashContainer** should be replaced by the name parameter of your flash embed object
var flashMovie = getFlashMovieObject("flashContainer");
flashMovie.onAlertWindowClosed();
}
</script>