返回列表 回复 发帖

为Alert组件加上响应功能!~

这一段时间在倒腾flex,很少玩flash了,今天翻到有人发表
<< ScrollBar,List,Alert组件的使用及实例>>, 原文:http://space.flash8.net/bbs/thread-309057-1-3.html
看到后面的Alert组件只有show一下,事实上他还有响应部分,比如,用户点了确定按钮之后又该
如何呢?
这里就针对这个我添加一下,画蛇添足一下!:-)

我可以先下载那个alert.fla,我是在这个基础上添加的!

后面我也提供了一个修改后的附件!

好了,正题:

第一步,添加个Label,和一个Button

命名:
Label :  MsgBox_lbl
Button : CallAlert_btn

第二步:添加CallAlert_btn按钮代码:
  1. CallAlert_btn.onRelease = function(){

  2. _global.style.modalTransparency = 40;  //设定全局透明度

  3. Alert.yesLabel = "Yes";  //Alert确定按钮文字,事实上也可以是:"确定","OK","行,就这样",一类的
  4. Alert.noLabel = "No";
  5. Alert.buttonWidth = 75; //如果是 "行,就这样" 那么铵钮是不是要大一点呢

  6. Alert.show ("点击一下", "", Alert.YES | Alert.NO, _root, alClicar, "prueba", Alert.OK);

  7. //这里是用 alClicar 对象来响应的
  8. };
复制代码
第三步:添加响应对象
  1. alClicar = new Object ();

  2. alClicar = function (evento)
  3. {
  4. if (evento.detail == Alert.YES) //用户点了yes按钮
  5. {
  6.   MsgBox_lbl.text = "你点击了OK按钮";
  7.   // 这里也可以添加一些其它的动作..
  8. }
  9. else if (evento.detail == Alert.NO) //用户点了No按钮
  10. {
  11.   MsgBox_lbl.text = "你点击了No按钮";
  12.   // 这里也可以添加一些其它的动作..
  13. }
  14. };
复制代码
以上就可以实现响应了!


最后完整的代码应该是这样的:
  1. import mx.controls.Alert

  2. CallAlert_btn.onRelease = function(){

  3. _global.style.modalTransparency = 40;

  4. Alert.yesLabel = "Yes";
  5. Alert.noLabel = "No";
  6. Alert.buttonWidth = 75;

  7. Alert.show ("点击一下", "", Alert.YES | Alert.NO, _root, alClicar, "prueba", Alert.OK);

  8. };
  9. //

  10. alClicar = new Object ();

  11. alClicar = function (evento)
  12. {
  13. if (evento.detail == Alert.YES)
  14. {
  15.   MsgBox_lbl.text = "你点击了OK按钮";
  16. }
  17. else if (evento.detail == Alert.NO)
  18. {
  19.   MsgBox_lbl.text = "你点击了No按钮";
  20. }
  21. };
  22. /*
  23. var lObj:Object = new Object();//创建侦听器对象
  24. Alert.show("表单填写不正确,请重新填写", "",Alert.OK | Alert.CANCEL, this, lObj);
  25. */

  26. stop();
复制代码
----------------
blog: http://www.oiasoft.com/blog/
web: http://www.celesteteam.com/

[ 本帖最后由 korpton 于 2007-1-7 00:55 编辑 ]

alert.rar (133.1 KB)

http://www.oiasoft.com

http://www.celesteteam.com/
不错
前几天,和另一位闪吧成员也谈到了ALERT的初始位置的问题,一直还没有找到解决办法.在你的这个例子里初始位置也是会盖住CallAlert_btn这个按钮,能找到设置初始位置的方法吗?
My Blog: http://www.fanflash.cn     Email: admin+fanflash.cn(+=@)
没想到过初始位置的问题,这里也只是添加响应的功能,后面那位老只的办法好像行哦!哈哈
http://www.oiasoft.com

http://www.celesteteam.com/
如果我想利用ALERT来传值  该怎么做呢?  
_mc.onPress =function(){
        this.ifBuy ? Alert.show("是否永久删除?", "请确认", Alert.OK | Alert.CANCEL, _root, Alert_remove(Alert, this)) : null;
}



function Alert_remove(_obj, _mc) {
        if (_obj.detail == Alert.YES) {
trace(_mc)
        }
}
返回列表