我正在使用Adobe Flash Builder开发应用程序,一旦触发了特定事件,它就会弹出一个警报窗口。 关闭“警报”框时,需要调用另一个事件。但我没有在mx.controls库中看到Alert类。似乎该类(存在于AS2中)已从AS3中删除。有没有其他方法可以实现相同的功能?
谢谢, Pritesh
答案 0 :(得分:0)
你需要为你的Alert控件定义closeHandler。从这里http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/controls/Alert.html#show()
查看ActionScript 3.0参考api答案 1 :(得分:0)
使用ExternalInterface。
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>
答案 2 :(得分:0)
要使用MXML和AS3在Mobile项目中显示弹出警报,您需要根据Sparks组件中的SkinnablePopUpContainer创建一个组件。 (由于简单的警报已被方便地删除。)
我在这里的文档中学习了很多关于SkinnablePopUpContainer的内容:
The Spark SkinnablePopUpContainer container
总结一下,我在MXML中创建了一个使用SkinnablePopUpContainer作为基类的组件。在View中我想要添加弹出窗口,我在Actionscript中创建了一个新的类实例。我听自定义事件,组件中的按钮将触发用户响应。要显示新的弹出组件,只需调用静态方法open();. open()方法需要父容器,而且弹出窗口应该是Modal。模态意味着组件下的任何内容都不能接收用户输入。
var alert:SkinnablePopUpContainer = new SkinnablePopUpContainer;
alert.addEventListener( "OK", onOK );
alert.open( this, true );
function onOK(e:Event):void{ trace("User said OK") };
我可以稍后提出一些示例文件。