用户名: 密码: 验证码: QQ--程序群:31736530 动画群:38836599
闪无忧
 
首 页 业界新闻 业界杂谈 Flash教程 Flash源码 Flash图书 Flash酷站 Flex & AIR 供求信息
   本栏目通告:   有意向写收费精品教程的朋友,请联系本站合作
当前位置 :首页>flash教程>Flash as程序>列表

flash中Object.watch的“另类”用法

[来源:SimpleLife blog | 作者:小力 | 时间:2008-05-03 | 点击:  | 收藏本文  【 】]
前段时间我写了两篇关于SWF跟HTML结合的相关资料,HTML与FLASH之间的“静态”传值JavaScript与Flash的通信,其中提到了使用Object.watch来完成JS与AS的通信,但没有详细给出实例,因为在FLASH PLAYER8.0以上播放器里用ExternalInterface来完成JS与AS的通信更便捷,没必要使用这种另类的方法了,除非你的应用要兼顾低版本浏览器。

  承蒙闪吧版主zszen关注,对我所说的Object.watch使用感兴趣,那我就专门对它的使用做个整理,虽然结合了比较老的JS方法SetVariable,而且个人感觉比较怪怪的,但确实有效。大家也可以当作一个思路的扩充,首先看一下演示

  其实实现道理很简单,利用SetVarible来更改AS中的一个变量,然后SWF中通过侦测变量的改变来判断JS的操作,进而执行相应的AS函数。只是这里的侦测变量没有用onEnterFram和setInteval,而是用了Object对象的watch方法。这是AS官方文档对此方法的解释:
watch(Object.watch 方法)
public watch(name:String, callback:Function, [userData:Object]) : Boolean
  注册当 ActionScript 对象的指定属性更改时要调用的事件处理函数。当该属性发生更改时,用 myObject 作为包含对象调用此事件处理函数。

  演示实例中的AS代码如下://定义需要监视对象
var lis_obj:Object = new Object();
//定义监视变量
lis_obj.op_status = "init";
//监视变量
lis_obj.watch("op_status",doOperation);
//定义回调函数
function doOperation(prop:String,oldVal:String,newVal:String){
//接收监视的变量名
//trace(prop);
//接收改变前的变量值
//trace(oldVal);
//接收改变后的变量值
//trace(newVal);
//通过判断改变的值来执行下面的操作
if(newVal=="run"){
s_txt.text = "你点击了run按钮!"
}
else if(newVal=="walk"){
s_txt.text = "你点击了walk按钮!"
}
else if(newVal==oldVal){
s_txt.text = "你什么都没做!"
}
else{
s_txt.text = "你干了什么?"
}
//可是用unwatch删除对变量属性的监视
//lis_obj.unwatch(prop);
}
  HMTL关键代码:
//定义一个JS函数
function doAction($s){
if(document.swf){
window.document.swf.SetVariable("lis_obj.op_status", $s);
}
}
//按钮调用JS函数来更改SWF中的变量
<input type='button' value='Run' onclick="doAction('run');"/>

<input type='button' value='Walk' onclick="doAction('walk');"/>

文章如果有错误或者缺少文件,请发邮件提交给我们
上一篇:一个酷眩的flash字体效果-BitmapData实例应用
下一篇:flash中ExternalInterface不会造成方法覆盖
Tags:     " // 变量 方法 定义 s_txt.text if
>>> 最新评论:(共有 0 位网友发表了评论)      查看所有评论
  发表评论
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
·本站发布内容均为客观表达作者观点,不代表闪无忧立场,请勿攻击和漫骂
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为
  教程分类
  基础操作   动画特效
  应用开发   组件学习
  As程序   动画教程
  Flash cs3   AS 3.0
  FCS/FMS教程   Loading教程
  Flash与Web   Flash教程连载
  相关文章
·BitmapData画源图片中的一部分
·flash加减法小游戏的制作过程
·flash打造随机获得游戏关卡密码
·AS入门第五课:数组
·AS常用语句 第三节-循环语句
·AS常用语句 第二节-条件语句
·AS入门第四课:AS常用语句 第一
·AS入门第三课:AS基本语法
·AS入门第二课:面向对象编程基础
·AS入门第一课:认识编程环境
  热门文章
·Flash进度条的制作详细讲解(组图)
·flash幻灯片网页效果
·Flex 3 AdvancedDataGrid的使用(第二
·全Flash动画网站实现的基础教学
·flash水影效果字
·Flash打造简单的飘雪动画视觉特效
·FLASH+XML相册(附源码)
·超酷flash光晕移动效果
·Flash旋转拖尾文字效果的制作教程
·Flash制作大雪纷飞效果动画
·flash春雷闪电效果
关于我们 - 免责声明 - 网站地图 - 商务服务 - 联系我们 - RSS地图
©CopyRight 2006-2008, 5UFlash.COM, Inc. All Rights Reserved
鲁ICP备06034971号