注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

有你做翅膀,孤单都是坚强

生命中总要经历曲折,或许是我们不愿意,突然到最后走不通,想重新来过,记录每件小事

 
 
 

日志

 
 
关于我
K24

曾经的生涩,曾经的懵懂,曾经的自恋,都随风去吧。。。

网易考拉推荐
 
 

SaveUserDataBeforeClose  

2012-11-03 14:43:08|  分类: @flex |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

flex 和 调用 js 接口

SaveUserDataBeforeClose - 李印贞 - 有你做翅膀,孤单都是坚强
 

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" preinitialize="preinitializeHandler(event)" layout="horizontal">
<mx:Script>
<![CDATA[
import aw.external.jsinterface.JSFunction;
import aw.external.jsinterface.JSDynamic;
import aw.external.JSInterface;
static public const NOT_SAVED_ALERT:String = '\\\\n\\\\nYou have not saved data. Please, save data before close window.\\\\n Do you realy want to close window without save changes?\\\\n\\\\n';
protected function preinitializeHandler(event:Event):void{
JSInterface.initialize(this.systemManager.stage);
if(JSInterface.navigator.appName.toLowerCase().indexOf('fox')>0){
// For FireFox
JSInterface.window.onbeforeunload = this.isDataSaved;
}else{
// For Internet Explorer, FireFox, Safari or other
JSInterface.window.onbeforeunload = JSFunction.create("var text; if(!window.isFlexDataSaved){text='"+NOT_SAVED_ALERT+"';}; return text;");
}
JSInterface.window.isFlexDataSaved = false;
}
protected function isDataSaved(event:JSDynamic=null):String{
if(JSInterface.window.isFlexDataSaved) return "";
if(event){
event.returnValue = NOT_SAVED_ALERT;
}
return NOT_SAVED_ALERT;
}
]]>
</mx:Script>
<mx:Button label="Save Data" click="{JSInterface.window.isFlexDataSaved = true}"/>
<mx:Spacer width="100"/>
<mx:Button label="Change Data" click="{JSInterface.window.isFlexDataSaved = false}"/>
</mx:Application>

另有一个版本, 不提示直接保存
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" preinitialize="preinitializeHandler(event)" layout="absolute">
<mx:Script>
<![CDATA[
import aw.external.JSInterface;
import aw.external.jsinterface.JSDynamic;

import flash.utils.getTimer;

import mx.controls.Alert;

protected var _savedData:SharedObject;
protected function preinitializeHandler(event:Event):void{
JSInterface.initialize(this.systemManager.stage);
JSInterface.window.onbeforeunload = this.saveDataHandler;
this._savedData = SharedObject.getLocal('saved_data');
Alert.show('Saved data:', this._savedData.data.time);
}
// For Internet Explorer, Fire Fox, Safari and others
protected function saveDataHandler(event:JSDynamic=null):void{
Alert.show('save started');
var i:Number = getTimer();
while(getTimer()-i<3000); // generate and save data timeout
// you can not send data to server, but you can save data locally as temporary
this._savedData.data.time = (new Date()).time;
this._savedData.flush();
Alert.show('data saved as SharedObject');
}
]]>
</mx:Script>
</mx:Application>


  评论这张
 
阅读(34)| 评论(0)
推荐

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017