首页  韩国资源  酷站加油  我的展厅  设计名站  古典元素  推荐下载  设计欣赏  每周专访  招募精英  人才专区  网页教程  平面设计  编程开发  设计竞赛
当前位置:首页 > 网页教程 > Flash教程 > 正文
AS3与JS交互的问题
来源:闪吧 作者:sayhelen 2008年10月07日 10:30 网友评论:0条 点击:

让我们一干人等郁闷了1个多小时的一个问题,结果才发现,JS处理JSON结构的时候,如果JSON格式与所需的不符,则函数都不会执行。
 
问题起因:AS3调用PHP,PHP异步返回一个XML结构,AS3取XML结构中的某些节点值赋给某个对象,然后通过与JS交互将值传递给JS。

调试过程:
PS  item为PHP返回的xml:
   var obj_info:Object    =    new Object();
   obj_info["from"] = item..from;
   obj_info["context"] = item..text;
                            
   trace ("UserMessage --> Message from service chat :: " + obj_info);
   trace ("UserMessage --> Message from service chat from :: " + obj_info["from"]);
   trace ("UserMessage --> Message from service chat context :: " + obj_info["context"]);
   this.dispatchEvent (new MessageEvent (MessageEvent.USERGETSUCCESS, obj_info));此处输出:
UserMessage --> Message from service chat :: [object Object]
UserMessage --> Message from service chat from :: [object Object]
UserMessage --> Message from service chat context :: [object Object]这个obj_info对象就是传递给JS的对象,而JS需要的JSON结构为: { "from" : "...", "context" : "..." } ,这两个属性值都为string类型。

发现错误点:JS内部调用函数时,在三种情况下调试:1、不传参数给函数;2、传一个正确类型和结构的JSON作为参数;3、传一个不正确类型和结构的JSON作为参数。  经过这三次调试后发现,如果JSON结构不正确,则JS函数不会执行。 这样一来,问题就转到了Flash传递给JS的参数上。对比之前Flash的调试输出的结果,确认Flash从PHP获取到XML后,在给传递给JS参数赋值的时候需要强制转换。

最后解决方法:修改赋值部分代码:
   var obj_info:Object    =    new Object();
   obj_info["from"] = (item..from).toString();
   obj_info["context"] = (item..text).toString();
                            
   trace ("UserMessage --> Message from service chat :: " + obj_info);
   trace ("UserMessage --> Message from service chat from :: " + obj_info["from"]);
   trace ("UserMessage --> Message from service chat context :: " + obj_info["context"]);
   this.dispatchEvent (new MessageEvent (MessageEvent.USERGETSUCCESS, obj_info));

上一篇:去掉SWF Encrypt5.0测试版LOGO的方法   下一篇:3.0里怎么监听鼠标滚轮的滚动方向
收藏此页】【打印】【关闭
 相关文章  我要点评
·AS3制作MP3波形图
·解析缓冲技术在JSP编程中新的应用
·JS动态可控制左右滚动的图片
·FLASH与JS通信:当FLASH有消息时IE窗口高亮显示
·AS3的网页参数处理
·Flash+Js焦点图切换效果
·AS3:图像裁剪
·使用AS3自带函数进2/8/10/16/32进制互换

免责声明:本站刊载此文不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。对本文有任何异议,请联络:68design#163.com
转载要求:作者及来源信息必需保留。转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印。



关于我们 | 在线反馈 | 广告报价 | 友情链接 | 联系我们 | 免责声明 | 在线投稿 | 网站地图
Copyright © 2003-2007 68design.net, All Rights Reserve 【找网页设计师,当然上网页设计师联盟】