<?xml version="1.0" encoding="UTF-8"?>
  <feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html"><![CDATA[极度鹤小居-闲云野鹤!]]></title>
  <subtitle type="html"><![CDATA[js脚本,div+css技术,web2.0技术,flash as脚本,网页技术,AS3.0,ASP,php]]></subtitle>
  <id>http://www.jdhcn.com/</id>
  <link rel="alternate" type="text/html" href="http://www.jdhcn.com/" /> 
  <link rel="self" type="application/atom+xml" href="http://www.jdhcn.com/atom.asp" /> 
  <generator uri="http://www.pjhome.net/" version="2.8">PJBlog3</generator> 
  <updated>2008-10-09T14:24:35+08:00</updated>

  <entry>
	  <title type="html"><![CDATA[web-rpg游戏设计简要分析]]></title>
	  <author>
		 <name>极度鹤</name>
		 <uri>http://www.jdhcn.com/</uri>
		 <email>lzdk2003@hotmail.com</email>
	  </author>
	  <category term="" scheme="http://www.jdhcn.com/default.asp?cateID=8" label="AS3.0" /> 
	  <updated>2008-10-09T14:24:35+08:00</updated>
	  <published>2008-10-09T14:24:35+08:00</published>
		  <summary type="html"><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用flash来开发rpg游戏，放在以前肯定是天方夜谭，而如今,这个神话却变成了现实。虽然自己没有核心的参与到游戏的开发中，但就自己在这个团队中积累的一些经验，简要的分析一下web-rpg网游的结构吧。 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.开发组件的选择。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 游戏迷们都应该知道，组件在游戏中占用的比率是相当大的。比如装备栏，聊天窗口，任务窗口等。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用flex开发的话，简单易学，功能也强大，但一定要注意效率问题，组件镶套多了的话，操作的时候明显会很<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;卡的感觉。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 第二个选择就是asWing,国人开发的一套组件,相当的完善，只是目前中文的学习资料比较的少，用熟了其实<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;在效率上会比flex的组件高不少。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 第三个选择就是自己写一套适合自己游戏项目的组件。呵呵，如果您们有很牛的人，以及充足的时间的话，<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;这是最优的方法。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2.游戏开发中的分工<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;就目前个人了解的话，一个游戏团队必须包括策划，as程序员，后台程序员，美工（分平面（手绘）,3d<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp; 建模)。这里只是笼统的说下，其实当中的细节分工还有很多，这里就不详谈了。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.游戏的系统分析<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 概括起来讲，包括 任务系统 装备系统 帮会系统 战斗系统 合成系统 技能系统 这是一个rpg游戏必须的<br/><br/>组成部分。这个可以做成单独的模块分工开发。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.游戏中资源的利用<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.地图的选择 就一般的游戏而言，地图分格子地图和单张地图，<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a.格子地图，就是将一整张图切割成等分的小块，在游戏中按照定义好的算法将显示区域的图片加载到场景<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 中，移动的时候不断的加载显示区域的图片，同时不断的卸载掉显示区域外的图片。类似于google地图的<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;优点：游戏初始化的时间，内存占用少,适合于超大型的地图<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;缺点：计算量太大，显示区域不能过大，否则游戏中会明显的卡。（目前用flash还没有优化的办法）.<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b.整张地图。这个就不多做解释了。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 优点：比起格子地图，游戏的效率高，游戏中不会有空白未加载的图片出现。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 缺点：地图大的话，地图加载的等候时间会比较长，内存占用大。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.人物的制作<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a.单张图片，一个等距的人物动作序列的png图片。这个是最普通的方式。优点：方便人物的换装等。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b.打包成一个swf文件，可以做在时间轴上，做成动画，也可以放到库中，绑定一个类调用。既然是用flash<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 的技术开发，建议采用此方法。优点：可以省很多的代码，调用也方便。缺点：每次要更新人物的时候，都必<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 需重新生成一下swf。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.资源的加密<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果您是位无私奉献着，完全可以无视这点。呵呵，一般采用二进制的方式加载资源，然后解析，具体的<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 就不多说了～。这个得自己研究，不然就不叫加密了，呵呵～<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp; 5.游戏的脚本<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;很遗憾，目前我也不知道有没属于<a href="http://www.jdhcn.com" target="_blank">as3</a>的一个游戏开发脚本，一般的c++中可以用python ruby，等。游戏脚<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本的好 处就不罗嗦了，盼牛人能开发一个脚本语言出来,哈哈～～ ^_^~~~~~~期待中...<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp; 6.地图编辑器<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一个2.5d的游戏，地图编辑器是必不可少的。这个说起来又会很多，简要的说下要实现的功能吧，场景物品<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 的放置，包括物品各个属性的调整，任务的编辑，技能的编辑等。<br/><br/> <br/><br/>说过要分享经验的，暂且分析到这里吧，第一次写真正意义上的&#39;教程&#39;，呵呵～～竟不知不觉写下了这么多字。<br/><br/>说到底，我们其实在走c++程序员n年前的路，游戏的思想基本上没什么变化，唯一的区别是，换了一种语言来开发，恩，开发这种大型的项目，最重要的还是游戏的性能。可能考虑的有些片面，欢迎评批！<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.jdhcn.com/article.asp?id=58" /> 
	  <id>http://www.jdhcn.com/default.asp?id=58</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[公开我的as3.0轻量级组件swc]]></title>
	  <author>
		 <name>极度鹤</name>
		 <uri>http://www.jdhcn.com/</uri>
		 <email>lzdk2003@hotmail.com</email>
	  </author>
	  <category term="" scheme="http://www.jdhcn.com/default.asp?cateID=8" label="AS3.0" /> 
	  <updated>2008-10-05T16:16:33+08:00</updated>
	  <published>2008-10-05T16:16:33+08:00</published>
		  <summary type="html"><![CDATA[暂时只有JTextInput, JCheckBox,JRadioButton,JButton四个组件的发布, 将不定期更新;<br/>等全套(和fl包里的组件一样)开发完成后再一起发布.fla形式的组件吧~~<br/><br/><img src="http://www.jdhcn.com/images/download.gif" alt="下载文件" style="margin:0px 2px -4px 0px"/> <a href="http://www.jdhcn.com/other/Jdhcn Interface.rar" target="_blank">点击下载组件</a><br/><br/><br/>将以上文件解压到你的flash安装目录下的en(或中文版是zh_cn)\Configuration\Components\<br/><br/>然后再重启flash(或者在组件那重新载入), 这样就安装完成了.<br/><br/><strong><span style="font-size:13pt"><span style="color:Red">所有组件继承的公共的属性,方法,事件:</span></span></strong><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.jdhcn.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"> <br/>所有组件继承的公共的属性,方法,事件:<br/><br/> ////////公共属性/////////////<br/>&#160;&#160;&#160;&#160; * enabled;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//是否为禁用; true为启用, false为禁用;<br/>&#160;&#160;&#160;&#160; * bgColor;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//背景颜色;<br/>&#160;&#160;&#160;&#160; * borderColor;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//背景边框颜色;<br/>&#160;&#160;&#160;&#160; * textColor;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//文本颜色;<br/>&#160;&#160;&#160;&#160; * upSkin;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//正常启用时显示皮肤;<br/>&#160;&#160;&#160;&#160; * disabledSkin;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//禁用组件时显示皮肤;<br/>&#160;&#160;&#160;&#160; * textFormat;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//正常启用时文本显示样式;<br/>&#160;&#160;&#160;&#160; * disabledTextFormat;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//禁用组件时文本显示样式;<br/>&#160;&#160;&#160;&#160; * width;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//组件宽度;<br/>&#160;&#160;&#160;&#160; * height;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//组件高度;<br/>&#160;&#160;&#160;&#160; * x;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//x坐标;<br/>&#160;&#160;&#160;&#160; * y;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//y坐标;<br/>&#160;&#160;&#160;&#160; * focusColor;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//焦点边框颜色;<br/> ////////公共方法/////////////<br/>&#160;&#160;&#160;&#160; * setFocus();&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//设置焦点;<br/>&#160;&#160;&#160;&#160; * getFocus();&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//获取焦点;<br/>&#160;&#160;&#160;&#160; * move(x:Number,y:Number);&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//坐标移动;<br/>&#160;&#160;&#160;&#160; * setSize(width:Number, height:Number);&#160;&#160;&#160;&#160;//重设尺寸;<br/> ////////公共事件/////////////<br/>&#160;&#160;&#160;&#160; * ComponentEvent.MOVE&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//当元件被移动时触发;<br/>&#160;&#160;&#160;&#160; * ComponentEvent.RESIZE&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//当元件尺寸被改变时触发;<br/></div></div><br/><br/><strong><span style="font-size:13pt"><span style="color:Red">JTextInput组件:</span></span></strong><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.jdhcn.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">JTextInput组件:<br/><br/>&#160;&#160;&#160;&#160; * ///////公共属性/////////<br/>&#160;&#160;&#160;&#160; * text;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//设置/获取文本内容;<br/>&#160;&#160;&#160;&#160; * htmlText;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//设置/获取html内容;<br/>&#160;&#160;&#160;&#160; * editable;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//设置/获取是否允许编辑内容;<br/>&#160;&#160;&#160;&#160; * textWidth;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//获取文本内容的宽度;<br/>&#160;&#160;&#160;&#160; * textHeight;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//获取文本内容的高底;<br/>&#160;&#160;&#160;&#160; * restrict;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//设置/获取文本字段从用户处接受的字符串; 参考:fl包里的TextInput类的restrict方法;<br/>&#160;&#160;&#160;&#160; * checkForm;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//验证表单是否通过(用户自己采用各自的验证方法); true为通过, false为不通过;若为不通过时,将启用验证表单的皮肤样式;<br/>&#160;&#160;&#160;&#160; * checkFormSkin;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//设置/获取表单验证的皮肤样式;<br/>&#160;&#160;&#160;&#160; * <br/>&#160;&#160;&#160;&#160; * ///////公共属性/////////<br/>&#160;&#160;&#160;&#160; * <br/>&#160;&#160;&#160;&#160; * ////////公共事件/////////////<br/>&#160;&#160;&#160;&#160; * <br/></div></div><br/><br/><strong><span style="font-size:13pt"><span style="color:Red">JCheckBox组件:</span></span></strong><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.jdhcn.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">JCheckBox组件:<br/><br/>&#160;&#160;&#160;&#160; * ///////公共属性/////////<br/>&#160;&#160;&#160;&#160; * label;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//选项后的标签文字;<br/>&#160;&#160;&#160;&#160; * sel&#101;cted;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//是否被选中;<br/>&#160;&#160;&#160;&#160; * styleName;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//显示的样式; &#34;rect&#34;为矩形框, &#34;circle&#34;为圆形;<br/>&#160;&#160;&#160;&#160; * <br/>&#160;&#160;&#160;&#160; * ///////公共方法/////////<br/>&#160;&#160;&#160;&#160; * <br/>&#160;&#160;&#160;&#160; * ///////公共事件/////////<br/>&#160;&#160;&#160;&#160; * ComponentEvent.CHANGE&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//当元件值改变时;<br/>&#160;&#160;&#160;&#160; * ComponentEvent.Sel&#101;ctED&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//当元件被选中时;<br/></div></div><br/><br/><strong><span style="font-size:13pt"><span style="color:Red">JRadioButton组件:</span></span></strong><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.jdhcn.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">JRadioButton组件:<br/><br/>&#160;&#160;&#160;&#160; * ///////公共属性/////////<br/>&#160;&#160;&#160;&#160; * label;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//选项后的标签文字;<br/>&#160;&#160;&#160;&#160; * sel&#101;cted;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//是否被选中;<br/>&#160;&#160;&#160;&#160; * styleName;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//显示的样式; &#34;rect&#34;为矩形框, &#34;circle&#34;为圆形;<br/>&#160;&#160;&#160;&#160; * <br/>&#160;&#160;&#160;&#160; * ///////公共方法/////////<br/>&#160;&#160;&#160;&#160; * <br/>&#160;&#160;&#160;&#160; * ///////公共事件/////////<br/>&#160;&#160;&#160;&#160; * ComponentEvent.CHANGE&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//当元件值改变时;<br/>&#160;&#160;&#160;&#160; * ComponentEvent.Sel&#101;ctED&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//当元件被选中时;<br/></div></div><br/><br/><strong><span style="font-size:13pt"><span style="color:Red">JButton组件:</span></span></strong><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.jdhcn.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">JButton组件:<br/><br/>&#160;&#160;&#160;&#160; * ///////公共属性/////////<br/>&#160;&#160;&#160;&#160; * label;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//按钮上的标题文字;<br/>&#160;&#160;&#160;&#160; * overBgColor;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//鼠标移到按钮上的背景颜色;<br/>&#160;&#160;&#160;&#160; * overBorderColor;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//鼠标移到按钮上的边框颜色;<br/>&#160;&#160;&#160;&#160; * overTextColor;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//鼠标移到按钮上的标题文字颜色;<br/>&#160;&#160;&#160;&#160; * ///////公共方法/////////<br/>&#160;&#160;&#160;&#160; * <br/>&#160;&#160;&#160;&#160; * ///////公共事件/////////<br/>&#160;&#160;&#160;&#160; * <br/></div></div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.jdhcn.com/article.asp?id=57" /> 
	  <id>http://www.jdhcn.com/default.asp?id=57</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[Flash中的颜色矩阵滤镜 ColorMatrixFilter ]]></title>
	  <author>
		 <name>极度鹤</name>
		 <uri>http://www.jdhcn.com/</uri>
		 <email>lzdk2003@hotmail.com</email>
	  </author>
	  <category term="" scheme="http://www.jdhcn.com/default.asp?cateID=8" label="AS3.0" /> 
	  <updated>2008-08-04T10:29:47+08:00</updated>
	  <published>2008-08-04T10:29:47+08:00</published>
		  <summary type="html"><![CDATA[<div align="center"><strong><a href="http://www.jdhcn.com" target="_blank">as3</a>颜色矩阵滤镜 ColorMatrixFilter </strong></div><br/><br/>在flash中可以用矩阵方便的操作颜色。在flash8以前的版本，操作颜色的唯一途径就是通过修改颜色对象中红，绿，蓝三个通道的值，在Flash8，&#34;颜色矩阵滤镜&#34; ColorMatrixFilter (flash.filters.ColorMatrixFilter) 在颗粒等级上提供给你更好的控制方法。&#34;颜色矩阵滤镜&#34;为 4行5列的多维矩阵(20个元素的数组)。图 4 是 与&#34;颜色矩阵滤镜&#34;等同的矩阵。<br/><br/><div align="center"><img src="http://www.jdhcn.com/attachments/All_Files/g20088410191.gif" border="0" alt=""/><br/>图4. 与&#34;颜色矩阵滤镜&#34;等同的矩阵</div><br/><br/>红，绿，蓝通道的值由如下所示计算方法所决定：<br/><br/>CODE:<br/><br/>redResult = a[0] * srcR + a[1] * srcG + a[2] * srcB + a[3] * srcA + a[4]<br/>greenResult = a[5] * srcR + a[6] * srcG + a[7] * srcB + a[8] * srcA + a[9]<br/>blueResult = a[10] * srcR + a[11] * srcG + a[12] * srcB + a[13] * srcA + a[14]<br/>alphaResult = a[15] * srcR + a[16] * srcG + a[17] * srcB + a[18] * srcA + a[19]<br/><br/>可以看出，第一行的值决定了红色值，第二行决定绿色，第三行蓝色，第四行是透明(Alpha)通道值。同样可以看出首四栏值是与红，绿，蓝，alpha通道值的乘积，而第五栏的值分别是和(偏移量)。注意每行的源值和结果值都是在0到255的区间内。因此即使各个通道的值小于0或大于255都会被强制到该区间内。我来举些例子说明它的原理。 <br/><br/>如果你想在红色通道加100(偏移量),将a[4]设置为100，如（图5） 。<br/><br/><div align="center"><img src="http://www.jdhcn.com/attachments/All_Files/r200884102123.gif" border="0" alt=""/><br/>图5. 红色值增加100</div><br/><br/>如果想使绿色通道加倍，将a[6]设为2,如（图6） <br/><br/><div align="center"><img src="http://www.jdhcn.com/attachments/All_Files/w200884102637.gif" border="0" alt=""/><br/>图6. 绿色加倍</div><br/><br/>如果你要使结果图像中的蓝色与原图的红色数量相等，将a[10]设为1， a[12]设为0 ，如（图7）<br/><br/><div align="center"><img src="http://www.jdhcn.com/attachments/All_Files/d200884102641.gif" border="0" alt=""/><br/>图7. 红色决定蓝色值</div><br/><br/>改变图像的亮度，你需要在每个颜色通道的值改变同样的数量。最简单的途径是在每个通道都设置相同的偏移量。偏移量为正时可以增加亮度为负时可以减小亮度。（图8） 是一个增加亮度的例子。 <br/><br/><div align="center"><img src="http://www.jdhcn.com/attachments/All_Files/c200884102645.gif" border="0" alt=""/><br/>图8. 增加亮度</div><br/><br/>你也可以通过将每个颜色通道与一个值相乘按比例的改变亮度，大于1的增加亮度小于1减小亮度。<br/>按照原理，将图像转换为灰度图，你需要将每个通道的部分设为等值。因为有三个通道，你可以将每个通道乘以0.33并将它们相加得到结果值。如（图9）<br/><br/><div align="center"><img src="http://www.jdhcn.com/attachments/All_Files/320088410272.gif" border="0" alt=""/><br/>图9.灰度图矩阵</div><br/><br/>由于不同颜色通道的相对屏幕发光度，但是 确实有特殊的提供更加真实的灰度图的&#34;亮度系数&#34;值 。例如在PS里创建一个纯绿色块然后把它放在一个纯蓝色块 ，然后将图像灰度化，你会看到原来绿色的地方的灰色会比原来蓝色的区域要亮。 <br/><br/>在Flash里使用这些矩阵，创建一个&#34;颜色矩阵滤镜&#34;的实例然后将它加入到一个影片剪辑(MovieClip)实例上。下面是一个使绿色加倍的例子：<br/><br/>CODE:<br/>import flash.filters.ColorMatrixFilter;<br/>var mat:Array = [ 1,0,0,0,0,<br/>&nbsp;&nbsp;&nbsp;&nbsp; 0,2,0,0,0,<br/>&nbsp;&nbsp;&nbsp;&nbsp; 0,0,1,0,0,<br/>&nbsp;&nbsp;&nbsp;&nbsp; 0,0,0,1,0 ];<br/>var colorMat:ColorMatrixFilter = new ColorMatrixFilter(mat);<br/>clip.filters = [colorMat];<br/><br/>&#34;颜色矩阵滤镜&#34;与一个已知的矩阵使用，你可以完成除了亮度和灰度之外复杂的颜色调整。调整对比度，饱和度和色相在 Flash 8种都成为了肯能。虽然在这里讨论这些话题与这篇文章有些远，但是足以说 Flash 8提供了一个以前任何版本都不能做到的颜色操作途径。<br/><br/>下面的flash可以看到在操作图像时结果矩阵是怎么改变的! <br/><strong>domo演示地址:</strong><br/><br/>本站:<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.jdhcn.com/images/flash.gif" alt="" style="margin:0px 2px -3px 0px" border="0"/>Flash动画</div><div class="UBBContent"><a id="temp96596_href" href="http://www.jdhcn.com/javascript:MediaShow('swf','temp96596','attachments/All_Files/y200884102849.swf','600','500')"><img name="temp96596_img" src="http://www.jdhcn.com/images/mm_snd.gif" style="margin:0px 3px -2px 0px" border="0" alt=""/><span id="temp96596_text">在线播放</span></a><div id="temp96596"></div></div></div><br/><br/>adobe:<br/><a href="http://www.adobe.com/devnet/flash/articles/matrix_transformations/ColorMatrixDemo.swf" target="_blank" rel="external">http://www.adobe.com/devnet/flash/articles/matrix_transformations/ColorMatrixDemo.swf</a> <br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.jdhcn.com/article.asp?id=56" /> 
	  <id>http://www.jdhcn.com/default.asp?id=56</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[as3属性代码自动生成工具]]></title>
	  <author>
		 <name>极度鹤</name>
		 <uri>http://www.jdhcn.com/</uri>
		 <email>lzdk2003@hotmail.com</email>
	  </author>
	  <category term="" scheme="http://www.jdhcn.com/default.asp?cateID=8" label="AS3.0" /> 
	  <updated>2008-07-14T23:29:23+08:00</updated>
	  <published>2008-07-14T23:29:23+08:00</published>
		  <summary type="html"><![CDATA[<p>有时候要写个对象属性类, set/get方法老是要copy来copy去,&nbsp; 感觉很麻烦,&nbsp; 还有点浪费时间.<br />现在我干脆就自己写了个set/get代码自动生成的类, 方便开发时提高速度, 现在发上来给大伙分享一下~~!<br /><object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" height="400" width="550" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
<param value="http://www.jdhcn.com/other/as3CodeAutoMake.swf" name="movie" />
<param value="high" name="quality" />
<param value="never" name="AllowScriptAccess" /></object><br /></p>
<p>下载地址:<br /></p>
<p><a href="http://www.jdhcn.com/other/as3CodeAutoMake.swf" target="_blank">点击下载swf</a></p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.jdhcn.com/article.asp?id=55" /> 
	  <id>http://www.jdhcn.com/default.asp?id=55</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[AS3 DataGrid组件设置与使用]]></title>
	  <author>
		 <name>极度鹤</name>
		 <uri>http://www.jdhcn.com/</uri>
		 <email>lzdk2003@hotmail.com</email>
	  </author>
	  <category term="" scheme="http://www.jdhcn.com/default.asp?cateID=8" label="AS3.0" /> 
	  <updated>2008-07-12T14:31:36+08:00</updated>
	  <published>2008-07-12T14:31:36+08:00</published>
		  <summary type="html"><![CDATA[flash cs3中使用DataGrid组件时, 要改变单元格里的字体大小颜色真是麻烦! <br/>以下是方法:<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.jdhcn.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"> <br/>var list:DataGrid = new DataGrid();<br/>//其他的数据,宽高什么的等属性自己设去吧;<br/><br/>////////TextFormat////////<br/>var tf1:TextFormat = new TextFormat();<br/>tf1.size = 12;<br/>tf1.color = 0x000000;<br/>//其他的属性自己调;<br/><br/>var tf2:TextFormat = new TextFormat();<br/>tf2.size = 13;<br/>tf2.color = 0xff0000;<br/>tf2.bold = true;<br/>//其他的属性自己调;<br/>////////TextFormat////////<br/><br/>//下面是应用:<br/>list.setRendererStyle(&#34;textFormat&#34;, tf1);//这是设置表头上的单元格文字格式;<br/>list.setStyle(&#34;headerTextFormat&#34;, tf2);//这是设置表内单元格上的文字样式;<br/></div></div><br/><br/>以前是表格内所有单元格沿用一种样式, 但有时候希望某一列的样式要不一样. 比方说我要第一列的内容居中,其他的还是上面那种样式呢?<br/>那就看下面:<br/><br/>新建一个类:<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.jdhcn.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"> <br/>package {<br/>&#160;&#160;&#160;&#160;import fl.controls.listClasses.CellRenderer;<br/>&#160;&#160;&#160;&#160;import fl.controls.listClasses.ICellRenderer;<br/>&#160;&#160;&#160;&#160;import flash.text.TextFormat;<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;public class CellStyle1 extends CellRenderer implements ICellRenderer {<br/><br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public function CellStyle1():void {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;super();<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/><br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;override protected&nbsp;&nbsp;function drawBackground():void {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var format:TextFormat=new TextFormat&nbsp;&nbsp;;<br/><br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;format.color=0x000000;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;format.size=12;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;format.align = &#34;center&#34;;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//其他属性自己设;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;setStyle(&#34;textFormat&#34;,format);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;super.drawBackground();<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;}<br/>}<br/></div></div><br/><br/>应用:<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.jdhcn.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>//将第一列所有单元格的样式设置为CellStyle1里的format所具有的样式;单元格表头不在范围内;<br/>list.getColumnAt(0).cellRenderer = CellStyle1;<br/><br/>//当然也可以一次性设置同一种样式;<br/>list.setStyle(&#34;cellRenderer&#34;,CellStyle1);<br/>(如果CellStyle1里的format的样式效果和tf1相同的话,那么上面效果等同于:<br/>list.setRendererStyle(&#34;textFormat&#34;, tf1);//这是设置表头上的单元格文字格式;<br/></div></div><br/><br/>如果每列都要不同的效果可能就要多个CellStye1类吧! 没空去研究了.呵呵~~<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.jdhcn.com/article.asp?id=53" /> 
	  <id>http://www.jdhcn.com/default.asp?id=53</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[JSON扫盲帖+JSON.as类教程]]></title>
	  <author>
		 <name>极度鹤</name>
		 <uri>http://www.jdhcn.com/</uri>
		 <email>lzdk2003@hotmail.com</email>
	  </author>
	  <category term="" scheme="http://www.jdhcn.com/default.asp?cateID=8" label="AS3.0" /> 
	  <updated>2008-04-22T16:55:17+08:00</updated>
	  <published>2008-04-22T16:55:17+08:00</published>
		  <summary type="html"><![CDATA[补充内容:<br/>如果json字符串是从html用FlashVars来传递参数时那么字符串中的第一个双引号(包括双引号)以后的内容就不会得到传送. 而adobe的官方json.as类包里解析josn对象中是少不了双引号的. 所以搞了半天只后用个字符串替换函数啦!<br/>方法看另一篇文章:<br/><a target="_blank" href="http://www.jdhcn.com//article.asp?id=51" rel="external"> html传带双引号的参数给flash解决方案</a><br/><br/>--------------------------------------------------------------------------------------<br/><span style="color:Red">先看下面的转载内容吧! 前面这些是根据自己的需求的补充内容:</span><br/>--------------------------------------------------------------------------------------<br/><br/><strong>JSON扫盲帖+JSON类教程</strong><br/>昨天发了json的AS3解析类，从大家的跟帖上来看，好多人还是不知道这个东西的，特建一个扫盲贴。<br/>其实在AS中使用json其实并不是一个必须或是很好的选择，因为AS对xml的解析已经很不错了，但是为什么可以考虑使用json呢，有以下几点：<br/><br/>json是介于单纯的文本方式（如：<ul><br/> <li>firstName=Brett&amp;lastName=McLaughlin&amp;email=brett@newInstance.com）和xml（&lt;request&gt;&lt;firstName&gt;Brett&lt;/firstName&gt;&lt;lastName&gt;McLaughlin&lt;/lastName&gt;&lt;email&gt;brett@newInstance.com&lt;/email&gt;&lt;/request&gt;）中间的一种格式，他具有文本和xml的中性优势：数据量小和清晰的数据格式。<br/></li><li>json是JavaScript Object Notation的简写，那么意思就是说他是来自于javascript的东西。因为现在ajax的流行，大部分网站会采用ajax的模式和构架，那么json会是一个数据传输的首选（文本方式太简单，要是大数据量的时候无法理解，xml的方式数据量大，在解析的时候会增加服务器负担），那么要是一个网站从ajax构架的基础上出一个flex/flash版的界面的时候使用json会最少地减少服务器端的程序改动。<br/></li><li>服务器端现在有成熟的JSON解析代码（因为JSON运用太广泛了），那么在开发的时候也不用担心服务器端的解析。<br/></li></ul><br/>ps：我怎么只能想到上面三点啊，会不会理由太少了？<br/><br/><strong><span style="color:Teal">JSON 是什么?</span></strong><br/><br/><strong>简单 JSON 示例</strong><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.jdhcn.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"> <br/>//按照最简单的形式，可以用下面这样的 JSON 表示名称/值对：<br/>{ &#34;firstName&#34;: &#34;Brett&#34; } <br/><br/>//这个示例非常基本，而且实际上比等效的纯文本名称/值对占用更多的空间：<br/>firstName=Brett<br/><br/>//但是，当将多个名称/值对串在一起时，JSON 就会体现出它的价值了。首先，可以创建包含多个名称/值对的记录，比如：<br/>{ &#34;firstName&#34;: &#34;Brett&#34;, &#34;lastName&#34;:&#34;McLaughlin&#34;, &#34;email&#34;: &#34;brett@newInstance.com&#34; }<br/></div></div><br/>从语法方面来看，这与名称/值对相比并没有很大的优势，但是在这种情况下 JSON 更容易使用，而且可读性更好。例如，它明确地表示以上三个值都是同一记录的一部分；花括号使这些值有了某种联系。<br/><br/><strong>值的数组</strong><br/>当需要表示一组值时，JSON 不但能够提高可读性，而且可以减少复杂性。例如，假设您希望表示一个人名列表。在 XML 中，需要许多开始标记和结束标记；如果使用典型的名称/值对（就像在本系列前面文章中看到的那种名称/值对），那么必须建立一种专有的数据格式，或者将键名称修改为 person1-firstName 这样的形式。<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.jdhcn.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>//如果使用 JSON，就只需将多个带花括号的记录分组在一起：<br/>{ &#34;people&#34;: [<br/>&nbsp;&nbsp;{ &#34;firstName&#34;: &#34;Brett&#34;, &#34;lastName&#34;:&#34;McLaughlin&#34;, &#34;email&#34;: &#34;brett@newInstance.com&#34; },<br/>&nbsp;&nbsp;{ &#34;firstName&#34;: &#34;Jason&#34;, &#34;lastName&#34;:&#34;Hunter&#34;, &#34;email&#34;: &#34;jason@servlets.com&#34; },<br/>&nbsp;&nbsp;{ &#34;firstName&#34;: &#34;Elliotte&#34;, &#34;lastName&#34;:&#34;Harold&#34;, &#34;email&#34;: &#34;elharo@macfaq.com&#34; }<br/>]}<br/></div></div><br/><br/>这不难理解。在这个示例中，只有一个名为 people 的变量，值是包含三个条目的数组，每个条目是一个人的记录，其中包含名、姓和电子邮件地址。上面的示例演示如何用括号将记录组合成一个值。当然，可以使用相同的语法表示多个值（每个值包含多个记录）：<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.jdhcn.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>{ &#34;programmers&#34;: [<br/>&nbsp;&nbsp;{ &#34;firstName&#34;: &#34;Brett&#34;, &#34;lastName&#34;:&#34;McLaughlin&#34;, &#34;email&#34;: &#34;brett@newInstance.com&#34; },<br/>&nbsp;&nbsp;{ &#34;firstName&#34;: &#34;Jason&#34;, &#34;lastName&#34;:&#34;Hunter&#34;, &#34;email&#34;: &#34;jason@servlets.com&#34; },<br/>&nbsp;&nbsp;{ &#34;firstName&#34;: &#34;Elliotte&#34;, &#34;lastName&#34;:&#34;Harold&#34;, &#34;email&#34;: &#34;elharo@macfaq.com&#34; }<br/>],<br/>&#34;authors&#34;: [<br/>&nbsp;&nbsp;{ &#34;firstName&#34;: &#34;Isaac&#34;, &#34;lastName&#34;: &#34;Asimov&#34;, &#34;genre&#34;: &#34;science fiction&#34; },<br/>&nbsp;&nbsp;{ &#34;firstName&#34;: &#34;Tad&#34;, &#34;lastName&#34;: &#34;Williams&#34;, &#34;genre&#34;: &#34;fantasy&#34; },<br/>&nbsp;&nbsp;{ &#34;firstName&#34;: &#34;Frank&#34;, &#34;lastName&#34;: &#34;Peretti&#34;, &#34;genre&#34;: &#34;christian fiction&#34; }<br/>],<br/>&#34;musicians&#34;: [<br/>&nbsp;&nbsp;{ &#34;firstName&#34;: &#34;Eric&#34;, &#34;lastName&#34;: &#34;Clapton&#34;, &#34;instrument&#34;: &#34;guitar&#34; },<br/>&nbsp;&nbsp;{ &#34;firstName&#34;: &#34;Sergei&#34;, &#34;lastName&#34;: &#34;Rachmaninoff&#34;, &#34;instrument&#34;: &#34;piano&#34; }<br/>]<br/>}<br/></div></div><br/><br/>这里最值得注意的是，能够表示多个值，每个值进而包含多个值。但是还应该注意，在不同的主条目（programmers、authors 和 musicians）之间，记录中实际的名称/值对可以不一样。JSON 是完全动态的，允许在 JSON 结构的中间改变表示数据的方式。<br/>在处理 JSON 格式的数据时，没有需要遵守的预定义的约束。所以，在同样的数据结构中，可以改变表示数据的方式，甚至可以以不同方式表示同一事物。<br/><br/>ps：以上例子都是来自<a href="http://www.ibm.com/developerworks/cn/web/wa-ajaxintro10/" target="_blank" rel="external">http://www.ibm.com/developerworks/cn/web/wa-ajaxintro10/</a>，掌握 Ajax，自己懒，看人家有就顺便用了<br/><br/><strong>下面就介绍一下adobe的官方的json类的用法</strong><br/><br/>下面是教程，比较简单：<br/>1、服务器端来的json<br/>怎么样获得服务器端的json我就不说了吧（就是通讯），那么得到的应该是一个字符串，存入变量serverJSON，使用方式如下：<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.jdhcn.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>import json.*;<br/><br/>//json格式字符串 存入变量：serverJSON;<br/>var serverJSON:String = &#39;{ &#34;programmers&#34;: [{ &#34;firstName&#34;: &#34;Brett&#34;, &#34;lastName&#34;:&#34;McLaughlin&#34;, &#34;email&#34;: &#34;brett@newInstance.com&#34; },{ &#34;firstName&#34;: &#34;Jason&#34;, &#34;lastName&#34;:&#34;Hunter&#34;, &#34;email&#34;: &#34;jason@servlets.com&#34; }, { &#34;firstName&#34;: &#34;Elliotte&#34;, &#34;lastName&#34;:&#34;Harold&#34;, &#34;email&#34;: &#34;elharo@macfaq.com&#34; }],&#34;authors&#34;: [{ &#34;firstName&#34;: &#34;Isaac&#34;, &#34;lastName&#34;: &#34;Asimov&#34;, &#34;genre&#34;: &#34;science fiction&#34; },{ &#34;firstName&#34;: &#34;Tad&#34;, &#34;lastName&#34;: &#34;Williams&#34;, &#34;genre&#34;: &#34;fantasy&#34; },{ &#34;firstName&#34;: &#34;Frank&#34;, &#34;lastName&#34;: &#34;Peretti&#34;, &#34;genre&#34;: &#34;christian fiction&#34; }],&#34;musicians&#34;: [{ &#34;firstName&#34;: &#34;Eric&#34;, &#34;lastName&#34;: &#34;Clapton&#34;, &#34;instrument&#34;: &#34;guitar&#34; },{ &#34;firstName&#34;: &#34;Sergei&#34;, &#34;lastName&#34;: &#34;Rachmaninoff&#34;, &#34;instrument&#34;: &#34;piano&#34; }]}&#39;<br/><br/>//开始使用<br/>var json:Object = new Object();<br/>json = JSON.decode(serverJSON);<br/>trace(json.programmers[0].firstName);//输出：Brett;<br/></div></div><br/>json就是一个对象了，简单吧。<br/>不是吧这么简单。其实转变后就成为一个对象了，可以通过点语法来访问这些值了。XML靠边去。<br/><br/><strong>2、本地对象做成JSON</strong><br/>你要是能自己拼出JSON字符串也可以，不过我们是在面向对象的世界啊，那么我们都是对象啊，到时候对象直接就可以来用了。<br/>举一个例子：<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.jdhcn.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>import json.*;<br/>var myObject:Object = new Object();<br/>myObject.ab = &#34;adfsdf&#34;;<br/>myObject.cd = Math.random();<br/>trace(JSON.encode( myObject ));//输出：{&#34;ab&#34;:&#34;adfsdf&#34;,&#34;cd&#34;:0.0599129400216043}<br/></div></div><br/><br/>这样就可以给服务器了。<br/>总结：就两个方法，JSON.decode(String),JSON.encode(Object)，有这么简单的方式实现传输量小，而且简单的数据格式，我们为什么还不用呢？<br/>其实XML自然也有他自己的强势，当一个结构复杂的数据结构出现的时候，这个时候JSON就很难搞定了，XML就是首选了。<br/><br/><img src="http://www.jdhcn.com/images/download.gif" alt="下载文件" style="margin:0px 2px -4px 0px"/> <a href="http://www.jdhcn.com/attachments/All_Files/k2008422171354.rar" target="_blank">点击下载<strong><span style="color:Red">adobe官方json.as类包</span></strong>文件</a><br/>或到<span style="color:Red"><a target="_blank" href="http://bbs.actionscri&#112;t3.cn/viewthread.php?tid=1657" rel="external">天地会论坛下载</a></span><br/><br/>再不行就请留言啦! 呵呵!<br/><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.jdhcn.com/article.asp?id=52" /> 
	  <id>http://www.jdhcn.com/default.asp?id=52</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[html传带双引号的参数给flash解决方案]]></title>
	  <author>
		 <name>极度鹤</name>
		 <uri>http://www.jdhcn.com/</uri>
		 <email>lzdk2003@hotmail.com</email>
	  </author>
	  <category term="" scheme="http://www.jdhcn.com/default.asp?cateID=8" label="AS3.0" /> 
	  <updated>2008-04-22T16:06:28+08:00</updated>
	  <published>2008-04-22T16:06:28+08:00</published>
		  <summary type="html"><![CDATA[html传带双引号的参数给flash时,参数是文本型的, 但如果些文本里有双引号存在时.那么双引号及他以后的内容都为空了. 没找到什么办法. 就自己写了个正则来实现替换啦! (人笨没法子, 硬着头皮来嘛! 嘿嘿)<br/><br/>eg.<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.jdhcn.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"> <br/>&lt;object id=&#34;oflash&#34; classid=&#34;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&#34; codebase=&#34;<a href="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" target="_blank" rel="external">http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab</a>#version=9,0,0,0&#34; width=&#34;550&#34; height=&#34;400&#34; id=&#34;swf/Player99cn&#34; align=&#34;middle&#34;&gt;<br/>&#160;&#160;&#160;&#160;&lt;param name=&#34;allowScriptAccess&#34; value=&#34;always&#34; /&gt;<br/>&#160;&#160;&#160;&#160;&lt;param name=&#34;allowFullScreen&#34; value=&#34;false&#34; /&gt;<br/>&#160;&#160;&#160;&#160;&lt;param name=&#34;movie&#34; value=&#34;<a href="http://www.jdhcn.com" target="_blank">jdhcn</a>.swf&#34; /&gt;<br/>&#160;&#160;&#160;&#160;&lt;param name=&#34;quality&#34; value=&#34;high&#34; /&gt;<br/>&#160;&#160;&#160;&#160;&lt;param name=&#34;bgcolor&#34; value=&#34;#ffffff&#34; /&gt;<br/>&#160;&#160;&#160;&#160;&lt;param name=&#34;FlashVars&#34; id=&#34;FlashVars&#34; value=&#39;str=ab<span style="color:Red">&#34;sfsf&#34;sffcd</span>&#39; /&gt; //这里如果在flash接收到参数的话,str的值只能取到ab,ab以后的内容就没有了.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;param name=&#34;FlashVars&#34; id=&#34;FlashVars&#34; value=&#34;str=ab<span style="color:Red">.&#39;.sfsf.&#39;.sffcd</span>&#39; /&gt; //如果把红色的&#34;换成.&#39;.(当然其他的也行,但不要用太特殊的.正则里不好用&lt;没有太深入研究正则,见谅! 如果你会用正则那就随便你用什么字符了.哈&gt;比如&#34;|&#34;就不太好用, 然后调用下面的as函数来把&#34; <span style="color:Red">.&#39;.</span> &#34;替换成&#34; <span style="color:Red">&#34;</span> &#34; 就行了. <br/>&#160;&#160;&#160;&#160;&lt;embed id=&#34;oflash&#34; src<a href="http://www.jdhcn.com" target="_blank">jdhcn</a>.swf&#34; quality=&#34;high&#34; bgcolor=&#34;#ffffff&#34; width=&#34;550&#34; height=&#34;400&#34; name=&#34;swf/Player99cn&#34;&nbsp;&nbsp;align=&#34;middle&#34; FlashVars=&#34;pObject=abcd&#34; allowScriptAccess=&#34;sameDomain&#34; allowFullScreen=&#34;false&#34; type=&#34;application/x-shockwave-flash&#34; pluginspage=&#34;<a href="http://www.macromedia.com/go/getflashplayer" target="_blank" rel="external">http://www.macromedia.com/go/getflashplayer</a>&#34; /&gt;<br/>&#160;&#160;&#160;&#160;&lt;/object&gt;<br/></div></div><br/><br/>下面是as函数:<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.jdhcn.com/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent"><br/>//将str里所有的字符t1替换为t2;<br/>//注:t1得为正则里的非特殊字符;<br/>function replace(str:String, t1:String, t2:String):String {&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;var myPattern:RegExp = new RegExp(t1,&#34;g&#34;);<br/>&#160;&#160;&#160;&#160;return str.replace(myPattern, t2);<br/>}<br/><br/>使用:<br/>//str = &#34;<a href="http://www.jdhcn.com" target="_blank">jdhcn</a>.com是.&#39;.<a href="http://www.jdhcn.com" target="_blank">极度<a href="http://www.jdhcn.com" target="_blank">鹤</a></a>.&#39;.的小站&#34;;<br/>var out:String = MyMath.replace(jsonStr, &#34;.&#39;.&#34;, &#39;&#34;&#39;);<br/>//输出来的值是 out = &#39;<a href="http://www.jdhcn.com" target="_blank">jdhcn</a>.com是&#34;<a href="http://www.jdhcn.com" target="_blank">极度<a href="http://www.jdhcn.com" target="_blank">鹤</a></a>&#34;的小站;<br/></div></div><br/><br/>好像写的乱七八糟的.嘿嘿! <br/>高手不用看, 菜鸟看看总可以嘛!<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.jdhcn.com/article.asp?id=51" /> 
	  <id>http://www.jdhcn.com/default.asp?id=51</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[ASSIC码表]]></title>
	  <author>
		 <name>极度鹤</name>
		 <uri>http://www.jdhcn.com/</uri>
		 <email>lzdk2003@hotmail.com</email>
	  </author>
	  <category term="" scheme="http://www.jdhcn.com/default.asp?cateID=8" label="AS3.0" /> 
	  <updated>2008-04-22T12:39:04+08:00</updated>
	  <published>2008-04-22T12:39:04+08:00</published>
		  <summary type="html"><![CDATA[<table cellspacing="0" cellpadding="0" width="300" border="0">
    <tbody>
        <tr bgcolor="#ffcc99">
            <td>十进制</td>
            <td>十六进制</td>
            <td>符号</td>
            <td>十进制</td>
            <td>十六进制</td>
            <td>符号</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>0</td>
            <td>0H</td>
            <td>(NULL)</td>
            <td>64</td>
            <td>40H</td>
            <td>@</td>
        </tr>
        <tr height="20">
            <td>1</td>
            <td>1H</td>
            <td></td>
            <td>65</td>
            <td>41H</td>
            <td>A</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>2</td>
            <td>2H</td>
            <td></td>
            <td>66</td>
            <td>42H</td>
            <td>B</td>
        </tr>
        <tr height="20">
            <td>3</td>
            <td>3H</td>
            <td></td>
            <td>67</td>
            <td>43H</td>
            <td>C</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>4</td>
            <td>4H</td>
            <td></td>
            <td>68</td>
            <td>44H</td>
            <td>D</td>
        </tr>
        <tr height="20">
            <td>5</td>
            <td>5H</td>
            <td></td>
            <td>69</td>
            <td>45H</td>
            <td>E</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>6</td>
            <td>6H</td>
            <td></td>
            <td>70</td>
            <td>46H</td>
            <td>F</td>
        </tr>
        <tr height="20">
            <td>7</td>
            <td>7H</td>
            <td>BEEP</td>
            <td>71</td>
            <td>47H</td>
            <td>G</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>8</td>
            <td>8H</td>
            <td></td>
            <td>72</td>
            <td>48H</td>
            <td>H</td>
        </tr>
        <tr height="20">
            <td>9</td>
            <td>9H</td>
            <td>'\t' </td>
            <td>73</td>
            <td>49H</td>
            <td>I</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>10</td>
            <td>aH</td>
            <td>'\n' </td>
            <td>74</td>
            <td>4aH</td>
            <td>J</td>
        </tr>
        <tr height="20">
            <td>11</td>
            <td>bH</td>
            <td>'\v'</td>
            <td>75</td>
            <td>4bH</td>
            <td>K</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>12</td>
            <td>cH</td>
            <td>'\f'</td>
            <td>76</td>
            <td>4cH</td>
            <td>L</td>
        </tr>
        <tr height="20">
            <td>13</td>
            <td>dH</td>
            <td>'\r' </td>
            <td>77</td>
            <td>4dH</td>
            <td>M</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>14</td>
            <td>eH</td>
            <td></td>
            <td>78</td>
            <td>4eH</td>
            <td>N</td>
        </tr>
        <tr height="20">
            <td>15</td>
            <td>fH</td>
            <td></td>
            <td>79</td>
            <td>4fH</td>
            <td>O</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>16</td>
            <td>10H</td>
            <td></td>
            <td>80</td>
            <td>50H</td>
            <td>P</td>
        </tr>
        <tr height="20">
            <td>17</td>
            <td>11H</td>
            <td></td>
            <td>81</td>
            <td>51H</td>
            <td>Q</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>18</td>
            <td>12H</td>
            <td></td>
            <td>82</td>
            <td>52H</td>
            <td>R</td>
        </tr>
        <tr height="20">
            <td>19</td>
            <td>13H</td>
            <td></td>
            <td>83</td>
            <td>53H</td>
            <td>S</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>20</td>
            <td>14H</td>
            <td></td>
            <td>84</td>
            <td>54H</td>
            <td>T</td>
        </tr>
        <tr height="20">
            <td>21</td>
            <td>15H</td>
            <td></td>
            <td>85</td>
            <td>55H</td>
            <td>U</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>22</td>
            <td>16H</td>
            <td></td>
            <td>86</td>
            <td>56H</td>
            <td>V</td>
        </tr>
        <tr height="20">
            <td>23</td>
            <td>17H</td>
            <td></td>
            <td>87</td>
            <td>57H</td>
            <td>W</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>24</td>
            <td>18H</td>
            <td></td>
            <td>88</td>
            <td>58H</td>
            <td>X</td>
        </tr>
        <tr height="20">
            <td>25</td>
            <td>19H</td>
            <td></td>
            <td>89</td>
            <td>59H</td>
            <td>Y</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>26</td>
            <td>1aH</td>
            <td>(Ctrl-Z)</td>
            <td>90</td>
            <td>5aH</td>
            <td>Z</td>
        </tr>
        <tr height="20">
            <td>27</td>
            <td>1bH</td>
            <td>ESC</td>
            <td>91</td>
            <td>5bH</td>
            <td>[</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>28</td>
            <td>1cH</td>
            <td></td>
            <td>92</td>
            <td>5cH</td>
            <td>\</td>
        </tr>
        <tr height="20">
            <td>29</td>
            <td>1dH</td>
            <td></td>
            <td>93</td>
            <td>5dH</td>
            <td>]</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>30</td>
            <td>1eH</td>
            <td></td>
            <td>94</td>
            <td>5eH</td>
            <td>^</td>
        </tr>
        <tr height="20">
            <td>31</td>
            <td>1fH</td>
            <td></td>
            <td>95</td>
            <td>5fH</td>
            <td>_</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>32</td>
            <td>20H</td>
            <td>空格符</td>
            <td>96</td>
            <td>60H</td>
            <td>`</td>
        </tr>
        <tr height="20">
            <td>33</td>
            <td>21H</td>
            <td>!</td>
            <td>97</td>
            <td>61H</td>
            <td>a</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>34</td>
            <td>22H</td>
            <td>&quot;</td>
            <td>98</td>
            <td>62H</td>
            <td>b</td>
        </tr>
        <tr height="20">
            <td>35</td>
            <td>23H</td>
            <td>#</td>
            <td>99</td>
            <td>63H</td>
            <td>c</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>36</td>
            <td>24H</td>
            <td>$</td>
            <td>100</td>
            <td>64H</td>
            <td>d</td>
        </tr>
        <tr height="20">
            <td>37</td>
            <td>25H</td>
            <td>%</td>
            <td>101</td>
            <td>65H</td>
            <td>e</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>38</td>
            <td>26H</td>
            <td>&amp;</td>
            <td>102</td>
            <td>66H</td>
            <td>f</td>
        </tr>
        <tr height="20">
            <td>39</td>
            <td>27H</td>
            <td>'</td>
            <td>103</td>
            <td>67H</td>
            <td>g</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>40</td>
            <td>28H</td>
            <td>(</td>
            <td>104</td>
            <td>68H</td>
            <td>h</td>
        </tr>
        <tr height="20">
            <td>41</td>
            <td>29H</td>
            <td>)</td>
            <td>105</td>
            <td>69H</td>
            <td>i</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>42</td>
            <td>2aH</td>
            <td>*</td>
            <td>106</td>
            <td>6aH</td>
            <td>j</td>
        </tr>
        <tr height="20">
            <td>43</td>
            <td>2bH</td>
            <td>+</td>
            <td>107</td>
            <td>6bH</td>
            <td>k</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>44</td>
            <td>2cH</td>
            <td>,</td>
            <td>108</td>
            <td>6cH</td>
            <td>l</td>
        </tr>
        <tr height="20">
            <td>45</td>
            <td>2dH</td>
            <td>-</td>
            <td>109</td>
            <td>6dH</td>
            <td>m</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>46</td>
            <td>2eH</td>
            <td>.</td>
            <td>110</td>
            <td>6eH</td>
            <td>n</td>
        </tr>
        <tr height="20">
            <td>47</td>
            <td>2fH</td>
            <td>/</td>
            <td>111</td>
            <td>6fH</td>
            <td>o</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>48</td>
            <td>30H</td>
            <td>0</td>
            <td>112</td>
            <td>70H</td>
            <td>p</td>
        </tr>
        <tr height="20">
            <td>49</td>
            <td>31H</td>
            <td>1</td>
            <td>113</td>
            <td>71H</td>
            <td>q</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>50</td>
            <td>32H</td>
            <td>2</td>
            <td>114</td>
            <td>72H</td>
            <td>r</td>
        </tr>
        <tr height="20">
            <td>51</td>
            <td>33H</td>
            <td>3</td>
            <td>115</td>
            <td>73H</td>
            <td>s</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>52</td>
            <td>34H</td>
            <td>4</td>
            <td>116</td>
            <td>74H</td>
            <td>t</td>
        </tr>
        <tr height="20">
            <td>53</td>
            <td>35H</td>
            <td>5</td>
            <td>117</td>
            <td>75H</td>
            <td>u</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>54</td>
            <td>36H</td>
            <td>6</td>
            <td>118</td>
            <td>76H</td>
            <td>v</td>
        </tr>
        <tr height="20">
            <td>55</td>
            <td>37H</td>
            <td>7</td>
            <td>119</td>
            <td>77H</td>
            <td>w</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>56</td>
            <td>38H</td>
            <td>8</td>
            <td>120</td>
            <td>78H</td>
            <td>x</td>
        </tr>
        <tr height="20">
            <td>57</td>
            <td>39H</td>
            <td>9</td>
            <td>121</td>
            <td>79H</td>
            <td>y</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>58</td>
            <td>3aH</td>
            <td>:</td>
            <td>122</td>
            <td>7aH</td>
            <td>z</td>
        </tr>
        <tr height="20">
            <td>59</td>
            <td>3bH</td>
            <td>;</td>
            <td>123</td>
            <td>7bH</td>
            <td>{</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>60</td>
            <td>3cH</td>
            <td>&lt;</td>
            <td>124</td>
            <td>7cH</td>
            <td>|</td>
        </tr>
        <tr height="20">
            <td>61</td>
            <td>3dH</td>
            <td>=</td>
            <td>125</td>
            <td>7dH</td>
            <td>}</td>
        </tr>
        <tr bgcolor="#eeeeee" height="20">
            <td>62</td>
            <td>3eH</td>
            <td>&gt;</td>
            <td>126</td>
            <td>7eH</td>
            <td>~</td>
        </tr>
        <tr height="20">
            <td>63</td>
            <td>3fH</td>
            <td>?</td>
            <td>127</td>
            <td>7fH</td>
            <td></td>
        </tr>
    </tbody>
</table>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.jdhcn.com/article.asp?id=50" /> 
	  <id>http://www.jdhcn.com/default.asp?id=50</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[URLLoaderDataFormat.VARIABLES出现的错误]]></title>
	  <author>
		 <name>极度鹤</name>
		 <uri>http://www.jdhcn.com/</uri>
		 <email>lzdk2003@hotmail.com</email>
	  </author>
	  <category term="" scheme="http://www.jdhcn.com/default.asp?cateID=8" label="AS3.0" /> 
	  <updated>2008-04-18T14:29:25+08:00</updated>
	  <published>2008-04-18T14:29:25+08:00</published>
		  <summary type="html"><![CDATA[在使用URLLoaderDataFormat.VARIABLES时报以下错误:<br/><br/>Error: Error #2101: 传递给 URLVariables.decode() 的字符串必须是包含<span style="color:Red">名称/值</span>对的 <span style="color:Red">URL 编码</span>的查询字符串。<br/>&nbsp;&nbsp;&nbsp;&nbsp;at Error$/throwError()<br/>&nbsp;&nbsp;&nbsp;&nbsp;at flash.net::URLVariables/decode()<br/>&nbsp;&nbsp;&nbsp;&nbsp;at flash.net::URLVariables$iinit()<br/>&nbsp;&nbsp;&nbsp;&nbsp;at flash.net::URLLoader/flash.net:URLLoader::onComplete()<br/><br/><br/>出现些错误其实在于php里的第一行echo输出的信息中是否包含了url参数方式的;<br/><br/>以下的方式是正确的:<br/>&lt;?php<br/>&nbsp;&nbsp;&nbsp;&nbsp;$flashData = $_POST[&#39;message&#39;];<br/>&nbsp;&nbsp;&nbsp;&nbsp;$phpMessage = &#39;im php message!&#39;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:Red">echo &#34;phpMessage=$phpMessage&amp;flashMessage=$flashData&#34;;</span><br/>?&gt;<br/>或<br/>&lt;?php<br/>&nbsp;&nbsp;&nbsp;&nbsp;$flashData = $_POST[&#39;message&#39;];<br/>&nbsp;&nbsp;&nbsp;&nbsp;$phpMessage = &#39;im php message!&#39;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:Red">echo &#34;phpMessage=$phpMessage&amp;flashMessage=$flashData&#34;;</span><br/>&nbsp;&nbsp;&nbsp;&nbsp;echo &#34;其他信息&#34;;<br/>?&gt;<br/><br/>以下方式就会报错:<br/>&lt;?php<br/>&nbsp;&nbsp;&nbsp;&nbsp;$flashData = $_POST[&#39;message&#39;];<br/>&nbsp;&nbsp;&nbsp;&nbsp;$phpMessage = &#39;im php message!&#39;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;echo &#34;sfsdfghfghfghfghgfhsf&#34;;&nbsp;&nbsp;&nbsp;&nbsp;//不是url参数形式即不是 <span style="color:Red">变量名=值</span> 然后用 <span style="color:Red">&amp;</span> 连接的格式;<br/>?&gt;<br/>或<br/>&lt;?php<br/>&nbsp;&nbsp;&nbsp;&nbsp;$flashData = $_POST[&#39;message&#39;];<br/>&nbsp;&nbsp;&nbsp;&nbsp;$phpMessage = &#39;im php message!&#39;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;echo &#34;klsdfjlsdkfjlksdjflkjsdf&#34;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//这是第一个echo, flash找不到匹配的 <span style="color:Red">url参数形式</span>的字符串;<br/>&nbsp;&nbsp;&nbsp;&nbsp;echo &#34;phpMessage=$phpMessage&amp;flashMessage=$flashData&#34;;<br/>?&gt;<br/><br/><br/><br/><br/><br/>以下是转载<a href="http://www.jdhcn.com" target="_blank">as3</a>与php交互的文章:<br/><br/><strong><span style="font-size:15pt">AS3与PHP-交互示例</span></strong><br/>在<a href="http://www.jdhcn.com" target="_blank">as3</a>里，原来的loadVars方法已经被废弃，而改用一系列的类来实现与后台数据的交互，这些类是：URLLoader，URLLoaderDataFormat，URLStream，URLVariables。<br/>URLLoader 类和原来的loadVars类似，是加载文本，2进制数据，xml,URL数据等信息的有力工具。URLLoader接受一个URLRequest 作为构造的参数，使用load方法来加载数据。URLLoder也可以进行监听，这点也loadVars不同，一个简单的示例如下：<br/><br/>1. //////////////////actionscript code//////////////////////////////////////////<br/>&nbsp;&nbsp;2. //声明一个URLLoader<br/>&nbsp;&nbsp;3. var loader:URLLoader = new URLLoader();<br/>&nbsp;&nbsp;4. //监听数载加载完成事件<br/>&nbsp;&nbsp;5. loader.addEventListener(Event.COMPLETE,loaded);<br/>&nbsp;&nbsp;6. //事件相应函数<br/>&nbsp;&nbsp;7. function loaded(e:Event){<br/>&nbsp;&nbsp;8. trace(loader.data);<br/>&nbsp;&nbsp;9. // output : this data is from php!<br/>&nbsp;&nbsp;10. }<br/>&nbsp;&nbsp;11. //加载test.php<br/>&nbsp;&nbsp;12. loader.load(new URLRequest(&#34;test.php&#34;));<br/><br/>&nbsp;&nbsp;1. // ////////////////test.php code/////////////////////////////////<br/>&nbsp;&nbsp;2. &lt;?php<br/>&nbsp;&nbsp;3. //声明一个变量并赋给一个字符串<br/>&nbsp;&nbsp;4. $data =&#39;this data is form php!&#39;;<br/>&nbsp;&nbsp;5. //输出这个变量给flash<br/>&nbsp;&nbsp;6. echo $data;<br/>&nbsp;&nbsp;7. ?&gt;<br/><br/>从上面的示例可以看出，<a href="http://www.jdhcn.com" target="_blank">as3</a>和后台交互是多么简单，但这只是单项的交互，如果要flash向后台发送数据并传回数据该如何去做呢？这个时候你可能会把代码该成这样：<br/><br/>&nbsp;&nbsp;1. //actionscript code<br/>&nbsp;&nbsp;2. var loader:URLLoader = new URLLoader();<br/>&nbsp;&nbsp;3. loader.data={message:&#34;hello im flash!&#34;};<br/>&nbsp;&nbsp;4. loader.addEventListener(Event.COMPLETE,loaded);<br/>&nbsp;&nbsp;5. function loaded(e:Event){<br/>&nbsp;&nbsp;6. trace(loader.data);<br/>&nbsp;&nbsp;7. // output : this is flash say:<br/>&nbsp;&nbsp;8. }<br/>&nbsp;&nbsp;9. loader.load(new URLRequest(&#34;test.php&#34;));<br/><br/>&nbsp;&nbsp;1. //test.php code//<br/>&nbsp;&nbsp;2. &lt;?php<br/>&nbsp;&nbsp;3. $flashData = $_POST[&#39;message&#39;];<br/>&nbsp;&nbsp;4. echo &#34;this is flash say:$flashData&#34;;<br/>&nbsp;&nbsp;5. ?&gt;<br/><br/>看看输出的代码，你得到了什么？是的，信息并没有传输到php，你还是在用loadVars的方式试图传送数据，但<a href="http://www.jdhcn.com" target="_blank">as3</a>里已经不是这样了， URLLoader的data只有在数据被下载完时才会被初始化，在数据没有加载完成时，它是等于null的，也就是说，它只包含接受到的数据，而不管要发送的数据，那么，<a href="http://www.jdhcn.com" target="_blank">as3</a>里如何向后台发送数据呢？使用URLVariables。URLVariables允许你在flash和后台程序间传输变量， <a href="http://www.jdhcn.com" target="_blank">as3</a>里已经把发送和接受数据分离，再也不像as2的loadVars那样，一个类通吃所有了，那么这个URLVariables如何送要发送的数据呢？<br/>你可能找遍了URLLoader的文档也没有发现与它相关的东西，是的URLLoader并不和URLVariables有关联，而是 URLRequest在使用它，URLRequest包含整个http请求的所有信息，所以我们要发送的数据要放在这里，URLRequest有一个 data属性他接受一个object类型的参数，这就是我们要发送的数据。同时你可能还注意到了，URLRequest也管理用什么样的方式来发送 http请求，它的method属性接受一个字符参数，post或者是get。好了，现在我们来看看它们是怎么工作的：<br/><br/>&nbsp;&nbsp;1. //actionscript code<br/>&nbsp;&nbsp;2. var loader:URLLoader = new URLLoader();<br/>&nbsp;&nbsp;3. //声明一个URLRequest<br/>&nbsp;&nbsp;4. var url:URLRequest = new URLRequest(&#34;test.php&#34;);<br/>&nbsp;&nbsp;5. //设置传输方式为POST<br/>&nbsp;&nbsp;6. url.method = URLRequestMethod.POST;<br/>&nbsp;&nbsp;7. //声明一个URLVariables<br/>&nbsp;&nbsp;8. var values:URLVariables = new URLVariables();<br/>&nbsp;&nbsp;9. //设置要传输的信息<br/>&nbsp;&nbsp;10. values.message=&#34;hello im flash!&#34;;<br/>&nbsp;&nbsp;11. url.data = values;<br/>&nbsp;&nbsp;12. loader.addEventListener(Event.COMPLETE,loaded);<br/>&nbsp;&nbsp;13. function loaded(e:Event){<br/>&nbsp;&nbsp;14. trace(loader.data);<br/>&nbsp;&nbsp;15. // output : this is flash say:hello im flash!<br/>&nbsp;&nbsp;16. }<br/>&nbsp;&nbsp;17. loader.load(url);<br/><br/>&nbsp;&nbsp;1. //test.php code//<br/>&nbsp;&nbsp;2. &lt;?php<br/>&nbsp;&nbsp;3. $flashData = $_POST[&#39;message&#39;];<br/>&nbsp;&nbsp;4. echo &#34;this is flash say:$flashData&#34;;<br/>&nbsp;&nbsp;5. ?&gt;<br/><br/>怎么样，是不是也很方便的实现了<a href="http://www.jdhcn.com" target="_blank">as3</a>和后台的数据传输？恩，现在我们的程序可以双向交互数据了，但这只是一些简单的数据，如果你要传输带有结构的数据，（熟悉as2的人都知道loadVars可以自动解析下载数据的结构），让我们先按loadVars的方式来尝试下，看看URLLoader是不是能自动的解析下载的数据。<br/><br/>&nbsp;&nbsp;1. //actionscript code<br/>&nbsp;&nbsp;2. var loader:URLLoader = new URLLoader();<br/>&nbsp;&nbsp;3. //声明一个URLRequest<br/>&nbsp;&nbsp;4. var url:URLRequest = new URLRequest(&#34;test.php&#34;);<br/>&nbsp;&nbsp;5. //设置传输方式为POST<br/>&nbsp;&nbsp;6. url.method = URLRequestMethod.POST;<br/>&nbsp;&nbsp;7. //声明一个URLVariables<br/>&nbsp;&nbsp;8. var values:URLVariables = new URLVariables();<br/>&nbsp;&nbsp;9. //设置要传输的信息<br/>&nbsp;&nbsp;10. values.message=&#34;hello im flash!&#34;;<br/>&nbsp;&nbsp;11. url.data = values;<br/>&nbsp;&nbsp;12. loader.addEventListener(Event.COMPLETE,loaded);<br/>&nbsp;&nbsp;13. function loaded(e:Event){<br/>&nbsp;&nbsp;14. trace(loader.data);<br/>&nbsp;&nbsp;15. //outPut: phpMessage=im php message!&amp;flashMessage=hello im flash!<br/>&nbsp;&nbsp;16. trace(loader.data.phpMessage);<br/>&nbsp;&nbsp;17. // thorw Error;<br/>&nbsp;&nbsp;18. trace(loader.data.flashMessage);<br/>&nbsp;&nbsp;19. // thorw Error;<br/>&nbsp;&nbsp;20. }<br/>&nbsp;&nbsp;21. loader.load(url);<br/><br/>&nbsp;&nbsp;1. //test.php code//<br/>&nbsp;&nbsp;2. &lt;?php<br/>&nbsp;&nbsp;3. $flashData = $_POST[&#39;message&#39;];<br/>&nbsp;&nbsp;4. $phpMessage = &#39;im php message!&#39;;<br/>&nbsp;&nbsp;5. echo &#34;phpMessage=$phpMessage&amp;flashMessage=$flashData&#34;;<br/>&nbsp;&nbsp;6. ?&gt;<br/><br/>可以看到，数据被完全下载下来了，但是却没有被解析，还抛出了异常，那么是不是URLLoader就不能自动解析数据了呢？不是，相反URLLoader 提供了多种数据解析方式供你选择。这些数据解析方式都在URLLoaderDataFormat里，他们是：BINARY-以2进制的方式解析 TEXT-以文本的方式解析 VARIABLES-以变量-值配对的方式解析。URLLoader的dataFormat属性提供了对解析方式的选择，好，我们再来修改下程序使它变的更完美些：<br/><br/>1. //actionscript code<br/>&nbsp;&nbsp;2. var loader:URLLoader = new URLLoader();<br/>&nbsp;&nbsp;3. //声明一个URLRequest<br/>&nbsp;&nbsp;4. var url:URLRequest = new URLRequest(&#34;test.php&#34;);<br/>&nbsp;&nbsp;5. //设置传输方式为POST<br/>&nbsp;&nbsp;6. url.method = URLRequestMethod.POST;<br/>&nbsp;&nbsp;7. //声明一个URLVariables<br/>&nbsp;&nbsp;8. var values:URLVariables = new URLVariables();<br/>&nbsp;&nbsp;9. //设置要传输的信息<br/>&nbsp;&nbsp;10. values.message=&#34;hello im flash!&#34;;<br/>&nbsp;&nbsp;11. url.data = values;<br/>&nbsp;&nbsp;12. //设置以变量-值配对的方式解析数据<br/>&nbsp;&nbsp;13. loader.dataFormat = URLLoaderDataFormat.VARIABLES;<br/>&nbsp;&nbsp;14. loader.addEventListener(Event.COMPLETE,loaded);<br/>&nbsp;&nbsp;15. function loaded(e:Event){<br/>&nbsp;&nbsp;16. trace(loader.data);<br/>&nbsp;&nbsp;17. //outPut: phpMessage=im php message!&amp;flashMessage=hello im flash!<br/>&nbsp;&nbsp;18. trace(loader.data.phpMessage);<br/>&nbsp;&nbsp;19. // im php message!<br/>&nbsp;&nbsp;20. trace(loader.data.flashMessage);<br/>&nbsp;&nbsp;21. // hello im flash!<br/>&nbsp;&nbsp;22. }<br/>&nbsp;&nbsp;23. loader.load(url);<br/><br/>&nbsp;&nbsp;1. //test.php code//<br/>&nbsp;&nbsp;2. &lt;?php<br/>&nbsp;&nbsp;3. $flashData = $_POST[&#39;message&#39;];<br/>&nbsp;&nbsp;4. $phpMessage = &#39;im php message!&#39;;<br/>&nbsp;&nbsp;5. echo &#34;phpMessage=$phpMessage&amp;flashMessage=$flashData&#34;;<br/>&nbsp;&nbsp;6. ?&gt;<br/><br/>以上这些就是<a href="http://www.jdhcn.com" target="_blank">as3</a>里和后台交互的基础内容，现在你可以在<a href="http://www.jdhcn.com" target="_blank">as3</a>里创建这样的交互，获取动态数据来丰富你的程序，在你开始自己动手实验之前，还有一些东西值得注意：<br/>1，记得捕获和处理异常（上述的例子里都是假定在完美的测试环境下运行，所以没有加上异常捕获和处理的代码，但现实中你可能会遇到各种各样的情况）URLLoader可能引发好几种异常情况（详细请参见说明文档）<br/>你应该通过监听ioError和securityError事件，或者通过try-catch来处理他们，即使你确信不会发生这样的问题。<br/>2，文件的编码，这是个常见的问题，经常很多数据变成了乱码，或者解析出错，都是因为编码的问题，我的做法是确保发送的数据和后台传回的数据都是UTF-8格式（因为flash默认编码为utf-8）<br/>最后希望这篇文章能对你有所帮助，也欢迎你留言讨论相关的问题。]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.jdhcn.com/article.asp?id=47" /> 
	  <id>http://www.jdhcn.com/default.asp?id=47</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[as3调xml时将数据读入数组时报错]]></title>
	  <author>
		 <name>极度鹤</name>
		 <uri>http://www.jdhcn.com/</uri>
		 <email>lzdk2003@hotmail.com</email>
	  </author>
	  <category term="" scheme="http://www.jdhcn.com/default.asp?cateID=8" label="AS3.0" /> 
	  <updated>2008-04-01T15:25:20+08:00</updated>
	  <published>2008-04-01T15:25:20+08:00</published>
		  <summary type="html"><![CDATA[<a href="http://www.jdhcn.com" target="_blank">as3</a>调xml时将数据读入数组时报错,一般的原因导致以下报错应该好找出来! 今天搞了半天不知道怎么回事. 就是报错, 最终发现原来在存放数据的数组声明时没初始化下也会报如下错误, 写下来, 留个印吧.嘿<br/>var aa:Array = new Array();<br/>这样能解决些问题!<br/><br/>注:这只是其中一个原因哦, 个人碰到的特殊原因.嘿!<br/><br/>TypeError: Error #1009: 无法访问空对象引用的属性或方法。<br/>&#160;&#160;&#160;&#160;at MethodInfo-1()<br/>&#160;&#160;&#160;&#160;at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunction()<br/>&#160;&#160;&#160;&#160;at flash.events::EventDispatcher/dispatchEvent()<br/>&#160;&#160;&#160;&#160;at flash.net::URLLoader/flash.net:URLLoader::onComplete()]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.jdhcn.com/article.asp?id=46" /> 
	  <id>http://www.jdhcn.com/default.asp?id=46</id>
  </entry>	
		
</feed>
