﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-kenlistian-随笔分类-Flash</title><link>http://www.cnitblog.com/kenlistian/category/7213.html</link><description>勤学多思
</description><language>zh-cn</language><lastBuildDate>Wed, 28 Sep 2011 17:25:57 GMT</lastBuildDate><pubDate>Wed, 28 Sep 2011 17:25:57 GMT</pubDate><ttl>60</ttl><item><title>as3数组的array例子</title><link>http://www.cnitblog.com/kenlistian/archive/2008/06/07/45100.html</link><dc:creator>kenlistian</dc:creator><author>kenlistian</author><pubDate>Fri, 06 Jun 2008 16:06:00 GMT</pubDate><guid>http://www.cnitblog.com/kenlistian/archive/2008/06/07/45100.html</guid><wfw:comment>http://www.cnitblog.com/kenlistian/comments/45100.html</wfw:comment><comments>http://www.cnitblog.com/kenlistian/archive/2008/06/07/45100.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/kenlistian/comments/commentRss/45100.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/kenlistian/services/trackbacks/45100.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 这个是采用as3编程的flash例子。其中代码如下：由此例子可见，as3，和一般编程没有什么2样了，可以说未来，ria的编程也可基于as3.&nbsp;1&nbsp;2&nbsp;3import&nbsp;fl.controls.*;&nbsp;4import&nbsp;fl.data.DataProvider;&nbsp;5&nbsp;6/**//*&nbsp;&nbsp;7&nbsp;&n...&nbsp;&nbsp;<a href='http://www.cnitblog.com/kenlistian/archive/2008/06/07/45100.html'>阅读全文</a><img src ="http://www.cnitblog.com/kenlistian/aggbug/45100.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/kenlistian/" target="_blank">kenlistian</a> 2008-06-07 00:06 <a href="http://www.cnitblog.com/kenlistian/archive/2008/06/07/45100.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>as3字符串处理笔记3</title><link>http://www.cnitblog.com/kenlistian/archive/2008/06/05/45022.html</link><dc:creator>kenlistian</dc:creator><author>kenlistian</author><pubDate>Thu, 05 Jun 2008 05:37:00 GMT</pubDate><guid>http://www.cnitblog.com/kenlistian/archive/2008/06/05/45022.html</guid><wfw:comment>http://www.cnitblog.com/kenlistian/comments/45022.html</wfw:comment><comments>http://www.cnitblog.com/kenlistian/archive/2008/06/05/45022.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/kenlistian/comments/commentRss/45022.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/kenlistian/services/trackbacks/45022.html</trackback:ping><description><![CDATA[<br><br><br>as3中字符串的处理<br><br>1.length<br>2.charAt ，charCodeAt<br>3.比较字符串<br>4.toString<br>5.+ concat<br>6. toLowerCase() or toUpperCase()<br>7. 字符串查找<br>8&nbsp; 隔离字符串<br>9&nbsp; 查找，替换，匹配字符串。<br><br><br>length 属性&nbsp;&nbsp; 每个字符串都有 length 属性，其值等于字符串中的字符数：<br><br>var str:String = "Adobe";<br>trace(str.length); &nbsp;<br><br><br><br>使用 charAt() 方法和 charCodeAt() 方法检查字符串各个位置上的字符：<br><br>var str:String = "hello world!";<br>for (var:i = 0; i &lt; str.length; i++)<br>{<br>&nbsp;&nbsp;&nbsp; trace(str.charAt(i), "-", str.charCodeAt(i));<br>}<br><br><br>比较字符串&nbsp;&nbsp; &lt;、&lt;=、!=、==、=&gt; 和 &gt;。<br><br>获取其它对象的字符串表示形式，以toString() 方法来实现此目的。<br>var n:Number = 99.47;<br>var str:String = n.toString();<br>&nbsp;&nbsp;&nbsp; // str == "99.47"<br><br><br>字符串连接的含义是：将两个字符串按顺序合并为一个字符串。<br>&nbsp; 用 + 运算符来连接两个字符串<br>&nbsp; 和 concat() 方法<br><br><br>在大小写之间转换字符串<br>&nbsp;toLowerCase() 方法和 toUpperCase() 方法分别将字符串中的英文字母字符转换为小写和大写：<br><br><br>substr() 和 substring() 返回字符串的一个子字符串。<br><br>在这两个方法中，第一个参数是给定字符串中起始字符的位置。<br>在 substr() 方法中，第二个参数是要返回的子字符串的"长度"，<br>在 substring() 方法中，第二个参数是子字符串的"结尾"处字符的位置（该字符不包含在返回的字符串中）。<br>如：<br>var str:String = "Hello from Paris, Texas!!!";<br>trace(str.substr(11,15)); // 输出：Paris, Texas!!!<br>trace(str.substring(11,15)); // 输出：Pari<br><br>slice() 方法的功能类似于 substring() 方法。但可以使用负整数作为参数，<br>此时字符位置将从字符串末尾开始向前算起，<br>如<br>var str:String = "Hello from Paris, Texas!!!";<br>trace(str.slice(11,15)); // 输出：Pari<br>trace(str.slice(-3,-1)); // 输出：!!<br>trace(str.slice(-3,26)); // 输出：!!!<br>trace(str.slice(-3,str.length)); // 输出：!!!<br>trace(str.slice(-8,-3)); // 输出：Texas<br><br>查找匹配子字符串的字符位置<br>indexOf() 和 lastIndexOf()在字符串内查找匹配的子字符串，<br>如<br>var str:String = "The moon, the stars, the sea, the land";<br>trace(str.indexOf("the")); //输出：10<br><br>var str:String = "The moon, the stars, the sea, the land"<br>trace(str.indexOf("the", 11)); // 输出：21<br><br>lastIndexOf() 方法在字符串中查找子字符串的最后一个匹配项：<br><br>var str:String = "The moon, the stars, the sea, the land"<br>trace(str.lastIndexOf("the")); // 输出：30<br><br>如为 lastIndexOf() 方法提供了第二个参数，搜索将从字符串中的该索引位置反向（从右到左）进行：<br><br>var str:String = "The moon, the stars, the sea, the land"<br>trace(str.lastIndexOf("the", 29)); // 输出：21<br><br><br>创建由分隔符分隔的子字符串数组<br>split() 方法创建子字符串数组，该数组根据分隔符进行划分。<br>如<br>var queryStr:String = "first=joe&amp;last=cheng&amp;title=manager&amp;StartDate=3/6/65";<br>var params:Array = queryStr.split("&amp;", 2); // params == ["first=joe","last=cheng"]<br><br>split() 方法的第二个参数是可选参数，该参数定义所返回数组的最大大小。<br><br>另 split还支持正则表达式作为分隔符处理，这里不涉及正则处理<br><br>在字符串中查找模式并替换子字符串<br>&nbsp;match() 和 search() 方法可查找与模式相匹配的子字符串。 <br>&nbsp;replace() 方法可查找与模式相匹配的子字符串并使用指定子字符串替换它们。 <br>&nbsp;search() 方法返回与给定模式相匹配的第一个子字符串的索引位置。<br><br>如<br>var str:String = "The more the merrier.";<br>trace(str.search("the")); // 输出：9<br><br>对于search，match，replace都支持正则表达式匹配处理。<br><br><br><br>
<br><img src ="http://www.cnitblog.com/kenlistian/aggbug/45022.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/kenlistian/" target="_blank">kenlistian</a> 2008-06-05 13:37 <a href="http://www.cnitblog.com/kenlistian/archive/2008/06/05/45022.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>微软“Flash杀手”Silverlight发布</title><link>http://www.cnitblog.com/kenlistian/archive/2008/06/04/44953.html</link><dc:creator>kenlistian</dc:creator><author>kenlistian</author><pubDate>Wed, 04 Jun 2008 08:26:00 GMT</pubDate><guid>http://www.cnitblog.com/kenlistian/archive/2008/06/04/44953.html</guid><wfw:comment>http://www.cnitblog.com/kenlistian/comments/44953.html</wfw:comment><comments>http://www.cnitblog.com/kenlistian/archive/2008/06/04/44953.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/kenlistian/comments/commentRss/44953.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/kenlistian/services/trackbacks/44953.html</trackback:ping><description><![CDATA[2007年7月<br>&nbsp; 拉斯维加斯开幕的NAB展会上，微软正式发布了之前被誉为&#8220;Flash杀手&#8221;新跨平台网络媒体解决方案（之前的名称为WPF/E），将其定名为Silverlight。<br><br>开发中的WPF/E全称为Windows Presentation Foundation Everywhere，是微软新Windows图形子系统&#8220;Windows Presentation Foundation&#8221;（代号Avalon）的一个子集。WPF/E基于跨浏览器网络技术，依赖XAML语言和JavaScript脚本创建页面，与Flash一样作为浏览器插件工作，同样能显示矢量图形、动画和视频，可以运行在多种操作系统甚至移动设备上。<br><br>Silverlight相对于Flash的优势在于视频，未来我们可能将使用Silverlight轻松的在网页上观看高清视频内容。Silverlight使用WMV格式，支持从低分辨率的移动媒体到全屏HD视频，并支持VC-1编码。为此微软还专门同时发布了VC-1编码器SDK。Silverlight基于.NET Framework，更方便程序员进行开发，提供高速媒体编码、硬件加速、支持Windows Server &#8220;Longhorn&#8221;等特性。<br><br>微软将于本月底的MIX07展会上对Silverlight进行详细的介绍，并发布Silverlight Beta版本。支持Windows和Mac OS X系统，支持IE 6.0/7.0、Firefox 1.5.0.8/2.0、Safari等浏览器。<br><br><br><br><br><br><br>除了ajax，flash，新的富媒体平台诞生了！虽然目前对它还很陌生，但相信不久的将来它将会越来越多的出现大家的视野中。SilverLight ，名字也很不错！不知道微软是不是针对Adobe的Apollo。拭目以待！<br><br>SilverLight是微软即将推出的跨浏览器、跨平台的解决方案，主要有以下特点：<br>　1. 在Web上提供丰富的用户体验 <br>　　* 空前的富媒体体验以及网络应用<br>　　* 强大的基于向量的图形<br>　　* 无敌的从Mobile到HD质量的视频以及音频<br>　　* 在有硬件加速支持下，最高达15倍的视频编码速度<br>　　* 移动设备支持<br>　2. 快速，更具生产力的开发<br>　　* 集成现有的网络开发技术及资源<br>　　* Web以及桌面一致的表现层，保证了开发的低成本性<br>　　* 基于标准的可验证的开发技术<br>　　* 为开发人员以及设计人员提供了广泛的工具支持，并且建立了相应的开发设计生态圈<br>　3. 快速部署<br>　　* 简单按需安装的SilverLight浏览器插件<br>　　* 灵活的基于视频及动画的广告嵌入方案<br>　　* 低成本的流媒体解决方案，基于荣获艾美奖荣誉的Windows Media技术<br>　　* 内容访问保护技术<br>　　* 在Microsoft Expression Media Encoder的支持下，加速编码并且发布基于视频的体验<br><br>silverlight官方网站：http://www.microsoft.com/s...<br>该文转载自新席地网：http://newxd.com/article.asp?id=719
<br><img src ="http://www.cnitblog.com/kenlistian/aggbug/44953.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/kenlistian/" target="_blank">kenlistian</a> 2008-06-04 16:26 <a href="http://www.cnitblog.com/kenlistian/archive/2008/06/04/44953.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>as3关联数组笔记2</title><link>http://www.cnitblog.com/kenlistian/archive/2008/06/04/44941.html</link><dc:creator>kenlistian</dc:creator><author>kenlistian</author><pubDate>Wed, 04 Jun 2008 03:04:00 GMT</pubDate><guid>http://www.cnitblog.com/kenlistian/archive/2008/06/04/44941.html</guid><wfw:comment>http://www.cnitblog.com/kenlistian/comments/44941.html</wfw:comment><comments>http://www.cnitblog.com/kenlistian/archive/2008/06/04/44941.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/kenlistian/comments/commentRss/44941.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/kenlistian/services/trackbacks/44941.html</trackback:ping><description><![CDATA[<p><br>关联数组</p>
<p>关联数组有时候也称为"哈希"或"映射"，由键和键值组成。<br>关联数组是键和值对的无序集合。</p>
<p>在as3中引入了名为"字典"的高级关联数组。<br>字典是 flash.utils 包中 Dictionary 类的实例，使用的键可以为任意数据类型，<br>但通常为 Object 类的实例。即字典的键不局限于 String 类型的值。 </p>
<p>故关联数组的键名分类有以下2种。</p>
<p>1.键名为字符串<br>&nbsp;&nbsp; 在 as3中有两种创建关联数组的方法。<br>&nbsp;&nbsp; <br>&nbsp; a.使用 Object 构造函数<br>&nbsp;&nbsp;&nbsp;&nbsp; Object 类的实例（也称作"通用对象"）在功能上等同于关联数组。<br>&nbsp;&nbsp;&nbsp;&nbsp; 通用对象的每个属性名称都用作键，提供对存储的值的访问。 <br>&nbsp;&nbsp;&nbsp;&nbsp; 如：<br>&nbsp;&nbsp;&nbsp;&nbsp; var monitorInfo:Object = {type:"Flat Panel", resolution:"1600 x 1200"};<br>&nbsp;&nbsp;&nbsp;&nbsp; trace(monitorInfo["type"], monitorInfo["resolution"]); <br>&nbsp;&nbsp;&nbsp;&nbsp; // 输出：Flat Panel 1600 x 1200</p>
<p><br>&nbsp;&nbsp;&nbsp;&nbsp; 如在声明数组时不需要初始化，则以[] or . 添加值。<br>&nbsp;&nbsp;&nbsp;&nbsp; 如：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var monitorInfo:Object = new Object();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; monitorInfo["aspect ratio"] = "16:10"; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; monitorInfo.colors = "16.7 million";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; trace(monitorInfo["aspect ratio"], monitorInfo.colors);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 输出：16:10 16.7 million</p>
<p>&nbsp; b.用 Array 构造函数，如果将关联数组声明为 Array 类型，则将无法使用对象文本初始化该数组。</p>
<p>&nbsp;&nbsp;&nbsp; var monitorInfo:Array = new Array();<br>&nbsp;&nbsp;&nbsp; monitorInfo["type"] = "Flat Panel";<br>&nbsp;&nbsp;&nbsp; monitorInfo["resolution"] = "1600 x 1200";<br>&nbsp;&nbsp;&nbsp; trace(monitorInfo["type"], monitorInfo["resolution"]); <br>&nbsp;&nbsp;&nbsp; // 输出： Flat Panel 1600 x 1200</p>
<p>&nbsp;&nbsp;&nbsp; 用 Array 构造函数创建关联数组没有什么优势。即使使用 Array 构造函数或 Array 数据类型，<br>&nbsp;&nbsp;&nbsp; 也不能将 Array 类的 Array.length 属性或任何方法用于关联数组。<br>&nbsp;&nbsp;&nbsp; 最好将 Array 构造函数用于创建索引数组。</p>
<p>&nbsp;&nbsp;&nbsp; 即不赞成用array做字典以及哈希组织数据。</p>
<p>2.键名为对象<br>用 Dictionary 类创建使用对象而非字符串作为键的关联数组。</p>
<p>如，考虑这样一个应用程序，它可根据 Sprite 对象与特定容器的关联确定 Sprite 对象的位置。<br>可以使用 Dictionary 对象，将每个 Sprite 对象映射到一个容器。</p>
<p>如下例子：</p>
<p>import flash.display.Sprite;<br>import flash.utils.Dictionary;</p>
<p>var groupMap:Dictionary = new Dictionary();</p>
<p>// 作为键名的对象<br>var spr1:Sprite = new Sprite();<br>var spr2:Sprite = new Sprite();<br>var spr3:Sprite = new Sprite();</p>
<p>// 用作值的对象<br>var groupA:Object = new Object();<br>var groupB:Object = new Object();</p>
<p>// 在字典中创建新的键-值对。<br>groupMap[spr1] = groupA;<br>groupMap[spr2] = groupB;<br>groupMap[spr3] = groupB;</p>
<p>if (groupMap[spr1] == groupA)<br>{<br>&nbsp;&nbsp;&nbsp; trace("spr1 is in groupA"); <br>}<br>if (groupMap[spr2] == groupB)<br>{<br>&nbsp;&nbsp;&nbsp; trace("spr2 is in groupB"); <br>}<br>if (groupMap[spr3] == groupB)<br>{<br>&nbsp;&nbsp;&nbsp; trace("spr3 is in groupB"); <br>}<br></p>
<img src ="http://www.cnitblog.com/kenlistian/aggbug/44941.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/kenlistian/" target="_blank">kenlistian</a> 2008-06-04 11:04 <a href="http://www.cnitblog.com/kenlistian/archive/2008/06/04/44941.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>as3索引数组笔记</title><link>http://www.cnitblog.com/kenlistian/archive/2008/06/03/44825.html</link><dc:creator>kenlistian</dc:creator><author>kenlistian</author><pubDate>Tue, 03 Jun 2008 01:09:00 GMT</pubDate><guid>http://www.cnitblog.com/kenlistian/archive/2008/06/03/44825.html</guid><wfw:comment>http://www.cnitblog.com/kenlistian/comments/44825.html</wfw:comment><comments>http://www.cnitblog.com/kenlistian/archive/2008/06/03/44825.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/kenlistian/comments/commentRss/44825.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/kenlistian/services/trackbacks/44825.html</trackback:ping><description><![CDATA[<p><br>一创建数组<br>Array 构造函数的使用有三种方式。</p>
<p>1 空数组。用 Array 类的 length 属性来验证数组是否不包含元素。</p>
<p>&nbsp;&nbsp;&nbsp; var names:Array = new Array();<br>&nbsp;&nbsp;&nbsp; trace(names.length);&nbsp;&nbsp; // 0</p>
<p>2. 初始化数组长度，其长度 0 和 4,294,967,295 之间的无符号整数。</p>
<p>var names:Array = new Array(3);<br>trace(names.length); // 输出：3<br>trace(names[0]);&nbsp;&nbsp;&nbsp;&nbsp; // 输出：undefined<br>trace(names[1]);&nbsp;&nbsp;&nbsp;&nbsp; // 输出：undefined<br>trace(names[2]);&nbsp;&nbsp;&nbsp;&nbsp; // 输出：undefined</p>
<p>3.初始化构造。</p>
<p>var names:Array = new Array("John", "Jane", "David");<br>trace(names.length); // 输出：3<br>trace(names[0]);&nbsp;&nbsp;&nbsp;&nbsp; // 输出：John<br>trace(names[1]);&nbsp;&nbsp;&nbsp;&nbsp; // 输出：Jane<br>trace(names[2]);&nbsp;&nbsp;&nbsp;&nbsp; // 输出：David</p>
<p>也可以创建具有数组文本或对象文本的数组。将数组文本直接分配给数组变量，如：</p>
<p>var names:Array = ["John", "Jane", "David"];</p>
<p><br>二插入数组元素方法：<br>&nbsp;push()、unshift() 和 splice()<br>&nbsp;<br>&nbsp;push()&nbsp;&nbsp;&nbsp; 用于在数组末尾添加一个或多个元素。<br>&nbsp;unshift() 用于在数组开头插入一个或多个元素，在索引号 0 处插入。<br>&nbsp;splice()&nbsp; 用于在数组中的指定索引处插入任意数目的项目。</p>
<p>如：<br>var planets:Array = new Array();<br>planets.push("Mars");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 数组内容：Mars<br>planets.unshift("Mercury");&nbsp;&nbsp;&nbsp;&nbsp; // 数组内容：Mercury,Mars<br>planets.splice(1, 0, "Venus", "Earth");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 传递给 splice() 的第一个参数是整数 1，它用于指示从索引 1 处开始插入。<br>&nbsp;&nbsp;&nbsp;&nbsp; 传递给 splice() 的第二个参数是整数 0，它表示不应删除任何项。<br>&nbsp;&nbsp;&nbsp;&nbsp; 传递给 splice() 的第三和第四个参数 Venus 和 Earth 为要插入的项。 </p>
<p>push() ，unshift() 方法均返回一个无符号整数，它们表示修改后的数组长度。<br>在用于插入元素时，splice() 方法返回空数组，<br>通过使用 splice() 方法，不仅可以将元素插入到数组中，而且还可以从数组中删除元素。<br>用于删除元素时，splice() 方法将返回包含被删除元素的数组。</p>
<p>三删除数组元素<br>&nbsp;pop()、shift() 和 splice()<br>&nbsp;<br>&nbsp;pop() 方法用于从数组末尾删除一个元素。<br>&nbsp;shift() 方法用于从数组开头删除一个元素，始终删除索引号 0 处的元素。<br>&nbsp;splice() 方法既可用来插入元素，也可以删除任意数目的元素，其操作的起始位置位于由发送到此方法的第一个参数指定的索引号处。</p>
<p>如：<br>var oceans:Array = ["Victoria", "Pacific", "Aral", "Superior", "Indian", "Huron"];<br>oceans.splice(2, 2, "Arctic", "Atlantic"); // 替换 Aral 和 Superior，<br>oceans.pop();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 删除 Huron<br>oceans.shift();&nbsp;&nbsp;&nbsp; // 删除 Victoria</p>
<p><br>pop() 和 shift() 方法均返回已删除的项。由于数组可以包含任意数据类型的值，<br>splice() 方法将返回包含被删除值的数组。</p>
<p>var lakes:Array = oceans.splice(2, 2, "Arctic", "Atlantic");<br>trace(lakes); // 输出：Aral,Superior</p>
<p><br>delete 运算符用于将数组元素的值设置为 undefined，但它不会从数组中删除元素。长度不变。</p>
<p>var oceans:Array = ["Arctic", "Pacific", "Victoria", "Indian", "Atlantic"];<br>delete oceans[2];<br>trace(oceans);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 输出：Arctic,Pacific,,Indian,Atlantic<br>trace(oceans[2]);&nbsp;&nbsp;&nbsp;&nbsp; // 输出：undefined<br>trace(oceans.length); // 输出：5</p>
<p>数组的length具有截断功能，将数组的 length 属性设置为小于数组当前长度的值，<br>则会截断数组，索引号高于 length 的新值减 1 处所存储的任何元素将被删除。</p>
<p>如：</p>
<p>var oceans:Array = ["Arctic", "Pacific", "Victoria", "Aral", "Superior"];<br>oceans.length = 2;<br>trace(oceans); // 输出：Arctic,Pacific</p>
<p><br>四对数组排序<br>reverse()、sort() 和 sortOn() </p>
<p>reverse() 倒序排列<br>sort()&nbsp;&nbsp;&nbsp; 按照多种预定义的方式对数组进行排序，甚至可用来创建自定义排序算法。<br>sortOn() 方法可用来对对象的索引数组进行排序，这些对象具有一个或多个可用作排序键的公共属性。</p>
<p><br>sort() 方法按照"默认排序顺序"重新安排数组中的元素。默认排序顺序具有以下特征：</p>
<p>排序区分大小写，也就是说大写字符优先于小写字符。例如，字母 D 优先于字母 b。 <br>排序按照升序进行，也就是说低位字符代码（例如 A）优先于高位字符代码（例如 B）。 <br>排序将相同的值互邻放置，并且不区分顺序。 <br>排序基于字符串，也就是说，在比较元素之前，先将其转换为字符串（例如，10 优先于 3，<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 因为相对于字符串 "3" 而言，字符串 "1" 具有低位字符代码）。 <br>&nbsp;&nbsp;&nbsp;&nbsp; 您也许需要不区分大小写或者按照降序对数组进行排序，或者您的数组中包含数字，<br>&nbsp;&nbsp;&nbsp;&nbsp; 从而需要按照数字顺序而非字母顺序进行排序。</p>
<p>sort() 方法具有 options 参数，可通过该参数改变默认排序顺序的各个特征。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; options 是由 Array 类中的一组静态常量定义的，如以下列表所示：</p>
<p>Array.CASEINSENSITIVE：此选项可使排序不区分大小写。例如，小写字母 b 优先于大写字母 D。 <br>Array.DESCENDING：用于颠倒默认的升序排序。例如，字母 B 优先于字母 A。 <br>Array.UNIQUESORT：如果发现两个相同的值，此选项将导致排序中止。 <br>Array.NUMERIC：这会导致排序按照数字顺序进行，比方说 3 优先于 10。 </p>
<p>如：</p>
<p>var poets:Array = ["Blake", "cummings", "Angelou", "Dante"];<br>poets.sort(); // 默认排序<br>trace(poets); // 输出：Angelou,Blake,Dante,cummings</p>
<p>poets.sort(Array.CASEINSENSITIVE);<br>trace(poets); // 输出：Angelou,Blake,cummings,Dante</p>
<p>poets.sort(Array.DESCENDING);<br>trace(poets); // 输出：cummings,Dante,Blake,Angelou</p>
<p>poets.sort(Array.DESCENDING | Array.CASEINSENSITIVE); // 使用两个选项<br>trace(poets); // 输出：Dante,cummings,Blake,Angelou</p>
<p><br>可以编写自定义排序函数，然后将其作为参数传递给 sort() 方法。</p>
<p>如，以下按第二个单词排序，而不是第一个单词排序</p>
<p>以下代码展示如何编写自定义排序函数，函数内部可以不理会。</p>
<p>var names:Array = new Array("John Q. Smith", "Jane Doe", "Mike Jones");</p>
<p>function orderLastName(a, b):int<br>{<br>&nbsp;&nbsp;&nbsp; var lastName:RegExp = /\b\S+$/;<br>&nbsp;&nbsp;&nbsp; var name1 = a.match(lastName);<br>&nbsp;&nbsp;&nbsp; var name2 = b.match(lastName);<br>&nbsp;&nbsp;&nbsp; if (name1 &lt; name2)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return -1;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; else if (name1 &gt; name2)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 1;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br>&nbsp;&nbsp;&nbsp; }<br>}<br>trace(names); // 输出：John Q. Smith,Jane Doe,Mike Jones<br>names.sort(orderLastName);<br>trace(names); // 输出：Jane Doe,Mike Jones,John Q. Smith</p>
<p>说明下：<br>自定义函数作为参数传入sort。其自定义参数必须有2个参数组成。<br>因为它每次对两个数组元素进行操作。排序函数的返回值指示应如何对元素排序：</p>
<p>返回值 -1 表示第一个参数 a 优先于第二个参数 b。 <br>返回值 1 表示第二个参数 b 优先于第一个参数 a。 <br>返回值为 0 表示元素具有相同的排序优先级。 </p>
<p><br>sortOn() 方法是为对象数组而使用。<br>对象元素中应具有一个可用作排序键的公共属性。</p>
<p>如以下数组中的元素是由对象组成。<br>以下对象中以姓和年份组成。</p>
<p>var poets:Array = new Array();<br>poets.push({name:"Angelou", born:"1928"});<br>poets.push({name:"Blake", born:"1757"});<br>poets.push({name:"cummings", born:"1894"});<br>poets.push({name:"Dante", born:"1265"});<br>poets.push({name:"Wang", born:"701"});</p>
<p><br>使用 sortOn() 方法，按born 属性对数组进行排序。<br>sortOn() 带两个参数 fieldName 和 options。</p>
<p>如，使用两个参数 "born" 和 Array.NUMERIC 来调用 sortOn()。<br>Array.NUMERIC 参数用于确保按照数字顺序进行排序，</p>
<p>poets.sortOn("born", Array.NUMERIC);<br>for (var i:int = 0; i &lt; poets.length; ++i)<br>{<br>&nbsp;&nbsp;&nbsp; trace(poets[i].name, poets[i].born);<br>}<br>/* 输出：<br>Wang 701<br>Dante 1265<br>Blake 1757<br>cummings 1894<br>Angelou 1928<br>*/</p>
<p>&nbsp;</p>
<p>当在sort() 和 sortOn()中使用<br>&nbsp;Array.RETURNINDEXEDARRAY 常量作为 options 参数。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 会对数组排序而又不修改现有数组。</p>
<p>如：<br>var indices:Array;</p>
<p>//indices 为poets元素排序后的元素索引数组，<br>indices = poets.sortOn("born", Array.NUMERIC | Array.RETURNINDEXEDARRAY);</p>
<p>for (var i:int = 0; i &lt; indices.length; ++i)<br>{<br>&nbsp;&nbsp;&nbsp; var index:int = indices[i];<br>&nbsp;&nbsp;&nbsp; trace(poets[index].name, poets[index].born);<br>}</p>
<p><br>五查询数组<br>concat()、join()、slice()，toString()</p>
<p>concat() 和 slice() 方法返回新数组<br>join() 和 toString() 方法返回字符串。</p>
<p>concat() 方法将新数组和元素列表作为参数，并将其与现有数组结合起来创建新数组。<br>slice() 方法具有两个名为 startIndex 和 endIndex 的参数，<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 并返回被数组分离出来的元素数组。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 分离从 startIndex 处的元素开始，到 endIndex 处的前一个元素结束。</p>
<p><br>如：<br>var array1:Array = ["alpha", "beta"];<br>var array2:Array = array1.concat("gamma", "delta");<br>trace(array2);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 输出：alpha,beta,gamma,delta</p>
<p>var array3:Array = array1.concat(array2);<br>trace(array3); // 输出：alpha,beta,alpha,beta,gamma,delta</p>
<p>var array4:Array = array3.slice(2,5);<br>trace(array4); // 输出：alpha,beta,gamma</p>
<p><br>join() 和 toString() 方法查询数组，并将其内容作为字符串返回。</p>
<p>join() 方法不带参数，则与toString同，返回所有元素的列表（以逗号分隔）的字符串。<br>join() 方法带参数；&nbsp; 即返回字符串以参数为分隔符</p>
<p>如：</p>
<p>var rivers:Array = ["Nile", "Amazon", "Yangtze", "Mississippi"];<br>var riverCSV:String = rivers.toString();<br>trace(riverCSV);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 输出：Nile,Amazon,Yangtze,Mississippi<br>var riverPSV:String = rivers.join("+");<br>trace(riverPSV);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 输出：Nile+Amazon+Yangtze+Mississippi</p>
<p><br>join() 方法中，如果数组中存在嵌套数组，则按默认方式处理，<br>如<br>var nested:Array = ["b","c","d"];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>var letters:Array = ["a",nested,"e"]; <br>var joined:String = letters.join("+");<br>trace(joined); // 输出：a+b,c,d+e</p>
<p>&nbsp;</p>
<img src ="http://www.cnitblog.com/kenlistian/aggbug/44825.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/kenlistian/" target="_blank">kenlistian</a> 2008-06-03 09:09 <a href="http://www.cnitblog.com/kenlistian/archive/2008/06/03/44825.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>flex ,as, flash 的大家谈(至少明白点意思)</title><link>http://www.cnitblog.com/kenlistian/archive/2008/05/30/44607.html</link><dc:creator>kenlistian</dc:creator><author>kenlistian</author><pubDate>Fri, 30 May 2008 07:54:00 GMT</pubDate><guid>http://www.cnitblog.com/kenlistian/archive/2008/05/30/44607.html</guid><wfw:comment>http://www.cnitblog.com/kenlistian/comments/44607.html</wfw:comment><comments>http://www.cnitblog.com/kenlistian/archive/2008/05/30/44607.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/kenlistian/comments/commentRss/44607.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/kenlistian/services/trackbacks/44607.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<p>&nbsp;</p>
<p><br>"Flex 跟Flash 的分别最大的就是在于组件吧。<br>Flex可以很方便的使用组件，但是不能随便改外观，这个是优点，但也是一定局限。<br>当然Flex也可以很方便实用，而且，外观设计也可以随便更改。为此，Flex为程序员<br>度身定做的，他不需要时间轴，也不用考虑外观问题，因为组件的外观已经确定，能<br>改的也只是颜色改变一下而已。但Flash CS3的IDE对于程序员来说，是很麻烦的事情，<br>但设计师却非常喜欢。</p>
<p>毕竟设计师跟程序员的工作内容不同。就我自己的感觉而言，Flex就好像没有设计界面<br>的Flash。Flex因为不能用IDE画图，所以，不能很个性化的创造界面(除非有新的组件<br>加入)，但程序逻辑等编辑是很一流的。说穿了就是不用顾及外观，只要程序能有效率<br>的运行就可以了。但对于设计师来说，并不满足于功能实现，还要有好看的外观。</p>
<p>实际上，MXML能有效减少因为组织程序界面写的代码，运行逻辑的代码还是跟Flash一样的。<br>表达方式不一样，但结果还是一样。"</p>
<p>我自己比较喜欢Flash画图，更改程序外观，用FD来写代码（Flash 的代码IDE是在差劲）。<br>就这样，不用MXML，那代价就是要写一大段代码来组织程序界面的东东咯。。。。"</p>
<p><br>"Flash本来就是用来做设计的，而Flex是用来做RIA的"</p>
<p>"尽管flash与flex都是依托于flash player而运行和展示，<br>从商业角度看，flash是专注于视频设计，动画设计类,没有过多的业务逻辑成分；</p>
<p>flex专注于应用系统，专注于web应用，当然现在也有了桌面应用AIR，<br>flex是封装了一些flash组建供开发人员使用。</p>
<p>从as来看，flash中的AS用处最多的是他的事件机制，属于普通脚本范畴，<br>而flex中，AS还另外赋予了处理业务逻辑的使命，已经是一种面向对象的语言，<br>基本可以代替java之类的来处理业务逻辑，当然，他没有java那样的可以与n'多<br>服务交互，总的来说，flex中的AS既充当了脚本角色，还充当业务制定角色。"</p>
<p>&nbsp;</p>
<p>"as3是开发语言（就象C#，java一样），<br>flex与Adobe Flash CS3是开发as3程序用到工具软件(就象Microsoft Visual Studio 2005和Jbuilder一样）。</p>
<p>至于，flex与Adobe Flash CS3为什么同时出现，我认为，是adob公司为了应付原有的flash软件用户才保留了<br>Adobe Flash CS3，而flex才是以后的主流开发软件～～<br>由于本人的大多数项目都是as2开发的，所在不太在意Adobe Flash CS3中components少的问题，建议去开源的<br>组件网站下载一个就行了"</p>
<p>&nbsp;</p>
<p>"Flex是工具.as3是语言.<br>Flex就是Flex.另一个RIA开发技术.是通过编写代码来生成swf的,与使用Flash来制作swf不同. "</p>
<p>&nbsp;</p>
<p>1.如果你指的flex是flex&nbsp; builder的话，那它是一个RIA（Rich Internet Applications）<br>&nbsp;&nbsp; ——富网络程序的IDE（集成开发环境）。<br>&nbsp;&nbsp; </p>
<p>&nbsp;&nbsp; "<br>&nbsp;似乎Adobe已经推出了flex builder3。<br>&nbsp;&nbsp;&nbsp; 如果你指的flex是广义的技术的话，那用网上流传最多的话来说<br>&nbsp;&nbsp;&nbsp; &#8220;它是Macromedia发布的presentation&nbsp; server（展现服务），是java web&nbsp; container或者.net server的一个应用，<br>&nbsp;&nbsp;&nbsp; 根据.mxml文件（纯粹的xml描述文件和actionscript）产生相应的.swf文件。&#8221;</p>
<p>&nbsp; Flex和AS的关系大致是：<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; flex是as与mxml以及其他杂七杂八的东西如js、html等等结合产生的一种互联网解决方案。<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 哈哈，这么理解来，应该说as是flex的脚丫子，既是基础又靠它走路。</p>
<p>2.其实flex和AS应该都是MM公司（Macromedia，听起来好像是跟MicroSoft对着干的意思）搞出来的东西，<br>&nbsp; 只不过几年前MM被近来很嚣张的Adobe公司活捉之后才变成了它的东东。<br>&nbsp; 至于flex用什么那就不好解释了，听说有了SDK和一些xx东西的话你可以用任何文本编辑器写好代码<br>&nbsp; 然后用命令行编译执行。但是最方便的大概就是用所谓的flex builder了，它看上去是个很像eclipse的东西，<br>&nbsp; 因为它根本就只是在eclipse上搞了点小插件而已：）"<br><br><br><br></p>
<p><br>&nbsp;</p>
<img src ="http://www.cnitblog.com/kenlistian/aggbug/44607.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/kenlistian/" target="_blank">kenlistian</a> 2008-05-30 15:54 <a href="http://www.cnitblog.com/kenlistian/archive/2008/05/30/44607.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>简单的actionscript3程序，课堂笔记1</title><link>http://www.cnitblog.com/kenlistian/archive/2008/05/30/44603.html</link><dc:creator>kenlistian</dc:creator><author>kenlistian</author><pubDate>Fri, 30 May 2008 07:03:00 GMT</pubDate><guid>http://www.cnitblog.com/kenlistian/archive/2008/05/30/44603.html</guid><wfw:comment>http://www.cnitblog.com/kenlistian/comments/44603.html</wfw:comment><comments>http://www.cnitblog.com/kenlistian/archive/2008/05/30/44603.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/kenlistian/comments/commentRss/44603.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/kenlistian/services/trackbacks/44603.html</trackback:ping><description><![CDATA[<br>
<pre>来自flash帮助例子，学习使用flashscript3.0笔记一二。</pre>
<pre>用flash作界面，有2种方法，</pre>
<pre>一。采用场景+内嵌脚本</pre>
<pre>1.直接在场景中布置控件，并命名。</pre>
<pre>2.在脚本框中处理其控件表现。由于flash的事件不能通过强大背景的类库自动勾连，所以</pre>
<pre>  需要在初始化做响应事件和函数的勾连，方法基本上如下：</pre>
<pre>    comboBox1.addEventListener(Event.CHANGE, cbHandler);</pre>
<pre>  把一个下拉框的下拉事件和cbHandle勾连起来，然后再编写cbHandle函数处理逻辑。</pre>
<pre>二。采用空场景+脚本文件（as）</pre>
<pre>   1.在新建空场景中，必须关联到一个文档类，该文档类既是文件名又是类名（同java类文件大致是相同命名规范）</pre>
<pre>   2.在脚本文件中，实现该场景的UI builder，以及事件管联代码。</pre>
<pre>     注意的是，在该脚本中其import flashxxx。xxx。xxx是flash自身所带的控件库包文件。</pre>
<pre>        </pre>
<pre>附：</pre>
<pre>
<h1>ActionScript 3.0 事件处理模型</h1>
<p>ActionScript 3.0 引入了单个事件处理模型，替换以前版本的 ActionScript 中存在的不同事件处理机制。该新事件模型基于文档对象模型 (DOM) 第 3 级事件规范。</p>
<p>对于具有使用 ActionScript 2.0 <code>addListener()</code> 方法经验的开发人员，指出 ActionScript 2.0 事件侦听器模型和 ActionScript 3.0 事件模型之间的区别是会有帮助的。下面的列表描述了这两种事件模型之间的一些主要区别：</p>
<ul>
    <li>若要在 ActionScript 2.0 中添加事件侦听器，在某些情况下使用 <code>addListener()</code>，其它情况下则使用 <code>addEventListener()</code>，而在 ActionScript 3.0 中，所有情况下都使用 <code>addEventListener()</code>。
    <li>ActionScript 2.0 中没有事件流，这意味着 <code>addListener()</code> 方法只能在广播事件的对象上进行调用，而在 ActionScript 3.0 中，<code>addEventListener()</code> 方法可以在作为事件流一部分的任意对象上进行调用。
    <li>在 ActionScript 2.0 中，事件侦听器可以是函数、方法或对象，而在 ActionScript 3.0 中，事件侦听器只能是函数或方法。
    <li>ActionScript 3.0 中不再支持 <code>on(</code><code>event</code><code>)</code> 语法，因此无法将 ActionScript 事件代码附加到影片剪辑。您只能使用 <code>addEventListener()</code> 添加事件侦听器。 </li>
</ul>
</pre>
<pre>由此可见，在ActionScript3关于处理事件上，规范了许多，相对而言，也就更像编程而不是</pre>
<pre>杂乱的做着什么事情。</pre>
<pre>自己在学习中，感觉actionscript有些类似delphi语法结构，但也有c，java的部分风格，可以说</pre>
<pre>它几乎就是一种杂种语言。</pre>
<pre>&nbsp;</pre>
<pre>&nbsp;</pre>
<pre>&nbsp;</pre>
<pre>&nbsp;</pre>
<pre>&nbsp;</pre>
<pre>&nbsp;</pre>
<img src ="http://www.cnitblog.com/kenlistian/aggbug/44603.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/kenlistian/" target="_blank">kenlistian</a> 2008-05-30 15:03 <a href="http://www.cnitblog.com/kenlistian/archive/2008/05/30/44603.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ActionScript 3大杂烩</title><link>http://www.cnitblog.com/kenlistian/archive/2008/05/30/44592.html</link><dc:creator>kenlistian</dc:creator><author>kenlistian</author><pubDate>Fri, 30 May 2008 03:08:00 GMT</pubDate><guid>http://www.cnitblog.com/kenlistian/archive/2008/05/30/44592.html</guid><wfw:comment>http://www.cnitblog.com/kenlistian/comments/44592.html</wfw:comment><comments>http://www.cnitblog.com/kenlistian/archive/2008/05/30/44592.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/kenlistian/comments/commentRss/44592.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/kenlistian/services/trackbacks/44592.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<p><br>ActionScript 3.0 是一种强大的面向对象编程语言，它标志着 Flash Player Runtime 演化过程中的一个重要阶段。<br>&nbsp;设计 ActionScript 3.0 的意图是创建一种适合快速地构建效果丰富的互联网应用程序的语言，这种应用程序已经成<br>&nbsp;为 Web 体验的重要部分。</p>
<p>历史</p>
<p>ActionScript 是一种基于 ECMAScript 的编程语言，用来编写 Adobe Flash 电影和应用程序。<br>ActionScript 1.0 最初随 Flash 5 一起发布，这是第一个完全可编程的版本。Flash 6 增加了几个内置函数，<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 允许通过程序更好地控制动画元素。<br>在 Flash 7 中引入了 ActionScript 2.0，这是一种强类型的语言，支持基于类的编程特性，比如继承、接口和严格的数据类型。<br>Flash 8 进一步扩展了 ActionScript 2，添加了新的类库以及用于在运行时控制位图数据和文件上传的 API。<br>Flash Player 中内置的 ActionScript Virtual Machine（AVM1）执行 ActionScript。通过使用新的虚拟机 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ActionScript Virtual Machine（AVM2），<br>Flash 9（附带 ActionScript 3）大大提高了性能。</p>
<p>下载flash9&nbsp; <a href="http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex3email">http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex3email</a></p>
<p><br>ActionScript 的老版本（ActionScript 1.0 和 2.0）提供了创建效果丰富的 Web 应用程序所需的功能和灵活性。<br>ActionScript 3 现在为基于 Web 的应用程序提供了更多的可能性。它进一步增强了这种语言，提供了出色的性能，<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 简化了开发的过程，因此更适合高度复杂的 Web 应用程序和大数据集。<br>&nbsp;<br>&nbsp;ActionScript 3 可以为以 Flash Player 为目标的内容和应用程序提供高性能和开发效率。</p>
<p>ActionScript 3 符合 ECMAScript Language Specification 第三版。它还包含基于 ECMAScript Edition 4 的功能，<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 比如类、包和名称空间；可选的静态类型；生成器和迭代器；以及非结构化赋值（destructuring assignments）。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 随着 Web 应用程序项目需求的增长，也要求 ActionScript 引擎有重大的突破。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>ActionScript 3 引入了一个新的高度优化的 ActionScript Virtual Machine（AVM2），与 AVM1 相比，AVM2 <br>&nbsp;&nbsp; 的性能有了显著的提高。这使 ActionScript 3 代码的执行速度几乎比以前的 ActionScript 代码快了 10 倍。<br>&nbsp;&nbsp; <br>Flash Player 9 中包含 AVM2（ActionScript 3.0 的脚本语言引擎），设计它的目的是提供互联网应用程序开发人员<br>&nbsp;&nbsp;&nbsp;&nbsp; 所需的性能和特性。为了向后兼容现有的内容，Flash Player 将继续支持 AVM1。 </p>
<p>&nbsp;</p>
<p>ActionScript2上说过它增加了强制变量类型和新的类语法，它实际上在最终编译时变成了ActionScript 1，</p>
<p>而ActionScript 3.0运行在AVM2上，一种新的专门针对ActionScirpt 3代码的虚拟机。</p>
<p><br>基于上面的原因，<br>&nbsp;&nbsp; ActionScript 3.0影片不能直接与ActionScript 1和ActionScript 2影片直接通讯(ActionScript 1和ActionScript2<br>&nbsp;&nbsp; 的影片可以直接通讯，因为他们使用的是相同的虚拟机；如果要ActionScirpt 3影片与ActionScirpt 1和ActionScript 2的影片通讯，<br>&nbsp;&nbsp; 只能通过local connection),但是你会发现ActionScript 3的改变更深远更有意义。</p>
<p>下面是各个版本的代码示范：</p>
<p>ActionScript 1</p>
<p>function Example(){<br>&nbsp;&nbsp; this.num = 1;<br>}<br>&nbsp;<br>&nbsp;Example.prototype.str = "text";<br>&nbsp;<br>&nbsp;Example.prototype.doubleNum = function(){<br>&nbsp;this.num *= 2;<br>} </p>
<p>ActionScript 2<br>代码:</p>
<p><br>class Example {<br>&nbsp;&nbsp; public var num:Number;<br>&nbsp;&nbsp; private var str:String = "text";<br>&nbsp;&nbsp; public function Example(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.num = 1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp; public function doubleNum():Void {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.num *= 2;<br>&nbsp;&nbsp; }<br>}</p>
<p>注意当编译时，上面的ActionScript 2类会变成ActionScript 1范例那样。</p>
<p><br>ActionScript 3<br>代码:</p>
<p>package {<br>&nbsp;&nbsp;&nbsp; public class Example {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public var num:Number;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; protected var str:String = "text";<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public function Example(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.num = 1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;public function doubleNum():void {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.num *= 2;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br>}</p>
<p>&nbsp;</p>
<p>ActionScript 3有怎样的不同呢?</p>
<p>ActionScript 3是不同的,非常的不同。因为不同在实际应用上所以需要一个全新的虚拟机来运行它。<br>但是本质上，它仍是ActionScript，作为 ActionScript你可能 已经注意到了在ActionScript 1和ActionScript 2<br>中的许多命令和程序概念仍然非常好的适用于ActionScript 3.0.尽管上面的范例代码非常小，我们至少可以看出<br>语法已经改变了。</p>
<p><br>在某些地方ActionScript 3.0与ActionScript 2.0代码看上去非常相似但并不总是这样，<br>最终在As2.0与As3.0中直接转换经常会比较困难。<br>这些改变是非常必要的，在印象中 ActionScript 3.0有很高的功效，在开发过程中不仅是效率（这<br>一点在一些小的但工作量较大的项目中得到证实）还有就是ActionScript 3.0在Flash Player中的<br>回放速度要比ActionScript 2代码快10倍。好，你可能会发现在ActionScirpt 1和ActionScript 2<br>中的许多并不复杂的任务在ActionScript 3.0中的代码长度会是原来的两倍长。但是最终你获得是<br>它的高速和效率。</p>
<img src ="http://www.cnitblog.com/kenlistian/aggbug/44592.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/kenlistian/" target="_blank">kenlistian</a> 2008-05-30 11:08 <a href="http://www.cnitblog.com/kenlistian/archive/2008/05/30/44592.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转ria</title><link>http://www.cnitblog.com/kenlistian/archive/2008/05/29/44548.html</link><dc:creator>kenlistian</dc:creator><author>kenlistian</author><pubDate>Thu, 29 May 2008 08:05:00 GMT</pubDate><guid>http://www.cnitblog.com/kenlistian/archive/2008/05/29/44548.html</guid><wfw:comment>http://www.cnitblog.com/kenlistian/comments/44548.html</wfw:comment><comments>http://www.cnitblog.com/kenlistian/archive/2008/05/29/44548.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/kenlistian/comments/commentRss/44548.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/kenlistian/services/trackbacks/44548.html</trackback:ping><description><![CDATA[<p><br><br>RIA:Rich Internet Application ,富网络应用，</p>
<p>网页，一般是html静态网页，浏览者只是看，内容有图片和文字，有超链接。但浏览者没法交互和反馈。<br>后台脚本语言和CGI得到大量应用，就叫动态网页了。以.net,jsp,asp,php等技术为代表，结合css和数据<br>库，ActiveX，Ajax，Flash等，使网页功能相当强大。</p>
<p>RIA技术，类似于单机版的应用程序，具有丰富美观的界面和交互能力，但它又是网络程序，具有快速修改<br>和部署的能力。</p>
<p>它基于XMl，脚本语言和web service，可以产生丰富而强大的应用。在没有RIA的时代，要制作强大的界面，<br>单机版应用程序很费力气，学过VC6.0的就知道，做个界面不容易。做花哨一点的界面更是费九牛二虎之力。<br>网络上做界面相对容易，采用dreamweaver等工具布局。但网络上的程序又不够强大，或受到某些安全限制。<br>flash网页美观，功能也强。但用其做网页工作量还是挺大。</p>
<p>RIA技术，基于XML，界面上采用Flash等技术，用ActionScript脚本做动态响应。编写时和编写普通网页差<br>不多，但最终界面却玄的多，会生成flash可以播放执行的swf文件。这代表了以后网络界面技术的方向。</p>
<p>现在，两家主要的RIA技术力量，</p>
<p>一是Adobe的Flex，另一家是微软的silver light,银光。另javaFX 也支持，但java程序的单调界面没法和flash比，<br>所以java爱好者认为基于java技术的RIA是用于工业应用的。Adobe是一家做图片和视频处理的超级厂商，其代表产<br>品Adobe Photoshop和Adobe PDF reader成为人们离不开的产品。收购macromedia后，强强联合，网络图像处理的<br>力量得到空前加强。基于 macromedia Flash的Flex，实力强劲，已经发布到3.0版。Flex基于eclipse开发，现在<br>已经开源。但其企业版还是要600多美元。</p>
<p>另：<br>silver light 是基于.net的一个插件，支持跨平台和跨浏览器。支持高清视频（蓝光DVD，HD-DVD）播放。<br>支持多种脚本语言如ruby, python,javascript,c#等。它采用微软提供的visual studio和expression studio<br>（类似flash用来生成矢量图形界面的）来编写。但也可直接用文本编辑器来编写，可以生成矢量图形。需要<br>下载silver light插件才能播放。<br>其网站是：<br><a href="http://www.silverlight.net/">http://www.silverlight.net</a></p>
<img src ="http://www.cnitblog.com/kenlistian/aggbug/44548.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/kenlistian/" target="_blank">kenlistian</a> 2008-05-29 16:05 <a href="http://www.cnitblog.com/kenlistian/archive/2008/05/29/44548.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转贴明天拿什么做界面</title><link>http://www.cnitblog.com/kenlistian/archive/2008/05/29/44543.html</link><dc:creator>kenlistian</dc:creator><author>kenlistian</author><pubDate>Thu, 29 May 2008 06:32:00 GMT</pubDate><guid>http://www.cnitblog.com/kenlistian/archive/2008/05/29/44543.html</guid><wfw:comment>http://www.cnitblog.com/kenlistian/comments/44543.html</wfw:comment><comments>http://www.cnitblog.com/kenlistian/archive/2008/05/29/44543.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/kenlistian/comments/commentRss/44543.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/kenlistian/services/trackbacks/44543.html</trackback:ping><description><![CDATA[<div class=cnt id=blog_text>
<div><span><a href="http://program.sdoq.com/show/55248"><u><font color=#0000ff>http://program.sdoq.com/show/55248</font></u></a></span></div>
<div>在.Net出现之前，<font color=#c60a00><span>界面</span></font>开发本是三足鼎立之势， <font color=#c60a00><span>VC</span></font>/MFC、VB和Delphi/C++Builder各据一方。然而，.Net的出现，不仅没能一统江湖，反而把天下搞得更乱了。不止一个人在困惑，到底该用什么来做<font color=#c60a00><span>界面</span></font>呢？<br><strong>l Visual C++</strong><br>今天，由于.Net的出现， Visual C++已经失去了昔日的IDE王者的宝座。微软显然更偏爱的是C#，以及VB。当看到Visual C++ 2008中即将搭载的最新版MFC不过是捆绑了BCGSoft的第三方<font color=#c60a00><span>界面</span></font>库，还能再说什么呢？难怪有人不解的问，还需要搭载第三方的<font color=#c60a00><span>界面</span></font>库吗？ 微软自己的库呢？莫非Office 2007的<font color=#c60a00><span>界面</span></font>不是用C++开发的？所以，别再指望Visual C++了，不是微软没有能力搞出个更好的MFC或着WTL，而是他压根就没打算去搞。<br><strong>l .Net Framework</strong><br>一直觉得.Net Framework是个Java的翻版。可以理解微软嫉妒Java在企业开发领域独占鳌头的心理，但偏偏.Net Framework的野心太大了，连桌面开发也想统一，结果就出现了今天的局面。.Net隔三差五的出个新版，虽然宣传的新特性令神往，可真要把桌面开发建立在这个平台上还是会有麻烦的。首先，分发.Net程序就是个麻烦，以前还觉得JRE臃肿庞大，但比起今天的.Net，JRE已经很轻盈了。而且，.Net各个版本并不完全兼容，所以日后为旧客户维护在老版本上开发的程序时，必然痛苦万分。<br><strong>l Java</strong><br>本来桌面开发这片没有Java什么事。自从.Net把水搅混之后， Java也开始浑水摸鱼起来。先是Eclipse异军突起，从SWT到RCP，还真吸引了不少人的青睐。而今，Netbeans也东山再起，趁火打劫。随着Java FX的发布，桌面开发显得更热闹了。<br><strong>l 其他</strong><br>无论如何，Delphi/C++ Builder曾经的辉煌与贡献是不能抹杀的。 可惜的是，Borland已经不再把心思放在IDE上了，虽然成立了CodeGear全资子公司，但结果如何只能让时间来回答了。<br>Mozilla/Firefox走的是与众不同的路线。 XUL在Firefox上的成功运用，给我们的<font color=#c60a00><span>界面</span></font>开发带来了新的尝试，但尚未成为主流。<br><br>&#8220;说了这么多，其实等于没说，困惑依旧是困惑。没办法，这就是现实。如果硬要支持一方，还不如自己先给自己一板砖。但是，无论现实如何，钱不能不挣，班不能不上，代码不能不写。好在我们具体工作中往往只局限在某一特定领域，所以，我们的选择固然不能尽善尽美，但日子也还过得去。就像牛顿定律与爱因斯坦的相对论，虽然相对论更精确，但平常用用牛顿定律也就够了。&#8221;<br>那么，对于语言及工具的选择，我们该如何把握呢？<br><strong>l 时尚型软件</strong><br>这部分软件，拥有很强的时尚特性，如聊天工具， 游戏，各类娱乐性软件等等。从事这部分开发建议紧跟着微软脚步走，使用最新的IDE、SDK，以求在第一时间让用户获得最新观感和体验。<br><strong>l 在原有技术积累上开发的软件</strong><br>这部分软件涵盖就更广泛了，比如财务软件，银行系统，各类ERP等等。对于这部分开发，如果不完全重新代码，就不用急着换语言和工具，原来用什么就还用什么。因为这部分软件大多用在企事业单位中，这一领域的各方面的更新换代并不像个人用户领域那么快。比如说，如果 Visual C++ 6.0还能应付工作，就先接着用。即使Borland破产了，Delphi也不用急着扔掉。毕竟，更换IDE的代价有时是非常巨大的，除非你已经完全想清楚了。<br><strong>l 全新的软件</strong><br>这部分的选择余地就比较大了。如果你能决定选择， 那么你的选择应该取决于你的喜好。所以，这是不需要听从任何建议，只要按照自己喜欢的选择就没错。<br><strong>团队开发经验</strong><br>&#8220;最后，谈一谈我的选择，仅供大家参考。&#8221;<br>多年以来，我和我的技术团队一直使用Visual C++和C++ Builder两种IDE进行<font color=#c60a00><span>界面</span></font>开发。 其中<font color=#c60a00><span>VC</span></font>版本曾进行过一次升级，从<font color=#c60a00><span>VC</span></font>6升级到<font color=#c60a00><span>VC</span></font>2003，C++ Builder一直使用6.0版。<br>今年，由于对C++ Builder未来的前景的担忧，并且长期以来同时维护用两个不同IDE开发的产品所产生的复杂性，我们已经逐渐放弃了C++ Builder的使用。但完全使用<font color=#c60a00><span>VC</span></font>做<font color=#c60a00><span>界面</span></font>开发也有问题，最大的问题在于<font color=#c60a00><span>VC</span></font>门槛太高，培训困难，而且<font color=#c60a00><span>界面</span></font>开发效率不高，对于时间紧迫的项目经常遭遇人 手不足的问题。<br>通过反复比较，最终我们将目标锁定在Python身上。首先，Python是google的三大主要开发语言之一，另外两者自然是C++和Java，就连当今炙手可热的Ruby都被google拒之门外了。按照当前google的发展状况，已经成为了微软极为强大的竞争对手。因此，Python的前途决不可小觑。尤其是即将推出的Python 3.0版，对Python的品质肯定会有质的提升。<br>其次，经过反复比较测试发现，Python是比C++、Java和C#这类静态语言更适合做<font color=#c60a00><span>界面</span></font>开发的语言。我 们从事的软件主要用于银行领域，软件中会涉及大量业务逻辑，<font color=#c60a00><span>界面</span></font>修改经常需要随着业务模式的改变而改变。甚至有时连<font color=#c60a00><span>界面</span></font>框架都要修改。比如说，由对话框模 式全部变成文档模式。这种含有大量业务逻辑的软件，用C++这类静态语言开发是非常痛苦的。<br>再次，Python本身使用C语言开发的，很容易用C/C++进行扩展，根本不用担心效率问题。这样，虽然引入了新的语言，公司原有的多年积累很容易用在新的项目中。<br>最后，Python的上手非常容易。公司原有大 量技术支持人员，以前根本无法胜任C++语言的产品开发，但现在却在使用Python开发的项目中大显身手。<br>由于Python本身自带的<font color=#c60a00><span>界面</span></font>库功能并不强大，我们使用Python+wxPython作为<font color=#c60a00><span>界面</span></font>开发平台，在 公司新的项目中进行<font color=#c60a00><span>界面</span></font>开发。开发过程使用Eclipse+PyDev 作为集成开发环境。产品发布时使用Py2exe进行打包。如今，在我的团队中，Python已经完全取代了之前C++ Builder的位置，<font color=#c60a00><span>VC</span></font>也主要用于开发不带<font color=#c60a00><span>界面</span></font>的内核或逻辑模块。【记者：呐不喊】<br><strong>张维佳：</strong><br>现任北京紫枫科技开发有限公司总经理，毕业于北京航空航天大学，自1999年开始创业，曾多年担任技术总监，拥有极其丰富的一线作战经验，涵盖操作系统、编程语言，数据库以及网络通讯等各个方面。擅长系统架构设计，精通多种编程语言，包括C/C++、Python、Java等等，对软件开发及团队管理有着极为深刻的理解。</div>
</div>
<img src ="http://www.cnitblog.com/kenlistian/aggbug/44543.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/kenlistian/" target="_blank">kenlistian</a> 2008-05-29 14:32 <a href="http://www.cnitblog.com/kenlistian/archive/2008/05/29/44543.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>flash lite 笔记3</title><link>http://www.cnitblog.com/kenlistian/archive/2008/05/09/43540.html</link><dc:creator>kenlistian</dc:creator><author>kenlistian</author><pubDate>Fri, 09 May 2008 04:11:00 GMT</pubDate><guid>http://www.cnitblog.com/kenlistian/archive/2008/05/09/43540.html</guid><wfw:comment>http://www.cnitblog.com/kenlistian/comments/43540.html</wfw:comment><comments>http://www.cnitblog.com/kenlistian/archive/2008/05/09/43540.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/kenlistian/comments/commentRss/43540.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/kenlistian/services/trackbacks/43540.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<p>flash lite actionscript 1.x&nbsp;&nbsp; 功能实现部分</p>
<p><br>1.获取和设置影片剪辑属性<br>&nbsp;&nbsp; 也可用点语法，请指定影片剪辑实例名称，后面跟随一个点 (.)，然后指定属性名称。</p>
<p>&nbsp;&nbsp; setProperty() <br>&nbsp;&nbsp; getProperty() <br>&nbsp;&nbsp; tellTarget()</p>
<p>2.控制其它时间轴<br>&nbsp;&nbsp; tellTarget()</p>
<p>3.使用变量<br>&nbsp;&nbsp; 在某个时间轴上指定一个变量，<br>&nbsp;&nbsp; 使用斜杠语法 (/) 和点 (..) <br>&nbsp;&nbsp; 以及冒号 (:)。也可以使用点记号。</p>
<p>4.模拟数组<br>&nbsp; <br>&nbsp;&nbsp; 伪数组通常由两个或多个变量构成，这些变量共享同一个基名称，<br>&nbsp;&nbsp; 后面跟随一个数字后缀。该后缀是每个数组元素的索引。</p>
<p>如，创建了以下变量：<br>color_1 = "orange";<br>color_2 = "green";<br>color_3 = "blue";<br>color_4 = "red";</p>
<p>则可如下编写：<br>for (i = 1; i &lt;=4; i++) {<br>&nbsp;&nbsp;&nbsp; trace (eval ("color_" add i));<br>}</p>
<p>eval 还具有类似指针的功能，<br>可以使用 eval() 函数，以便在运行时创建变量。<br>如，创建变量higthScore1..，并赋值给它</p>
<p><br>&nbsp; eval("highScore" add scoreIndex) = currentScore;<br>&nbsp; scoreIndex++;</p>
<p>&nbsp;</p>
<p>5.使用文本和字符串<br>连接字符串，用 add 运算符，如<br>v1 = "1";<br>v2= "2";<br>sum = v1 add v2;&nbsp; //sum = "12"</p>
<p>其中对于使用动态和输入文本字段的 scroll 属性来获取或设置字段的当前滚动位置。<br>及用 maxscroll 确定文本字段相对于最大滚动位置的当前滚动位置。</p>
<p>6.使用 call() 函数来创建函数</p>
<p>&nbsp;&nbsp; call() 参数可以是帧号或帧标签。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当call时，立即执行完后，才会向下执行。 </p>
<p>&nbsp;&nbsp; 例，<br>&nbsp;&nbsp; 调用位于帧标签为 moveUp 的代码： call("moveUp");<br>&nbsp;&nbsp; 调用第10号帧动作，&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call(10)<br>&nbsp;&nbsp; <br>&nbsp;&nbsp; 若调用另一时间轴（如影片剪辑的时间轴）上的代码<br>&nbsp;&nbsp; 则先指定影片剪辑实例名称，后跟冒号，再指定帧编号或帧标签。</p>
<p>&nbsp;&nbsp; 如，调用名为 callClip 的影片剪辑实例中的标签为 moveUp 的帧上代码：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call("callClip:moveUp");</p>
<p>7.使用 eval() 函数<br>&nbsp;&nbsp; <br>&nbsp;&nbsp; eval() 函数太常用了，在脚本语言基本都有，不再赘述。</p>
<p>如，<br>name = "Jack";<br>nameValue = eval("name");&nbsp;&nbsp;&nbsp; // 结果：nameValue = "Jack"</p>
<p>也可用 eval() 来按名称引用影片剪辑实例。<br>如，假设您有三个影片剪辑，名称分别为 clip1、clip2 和 clip3。</p>
<p>for() 循环会使每个剪辑的 x 位置递增 10 像素：</p>
<p>for(index = 1; index &lt;= 3; index++) {<br>&nbsp;&nbsp;&nbsp; eval("clip" add index)._x += 10<br>}</p>
<p>&nbsp;</p>
<p><br>&nbsp;</p>
<img src ="http://www.cnitblog.com/kenlistian/aggbug/43540.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/kenlistian/" target="_blank">kenlistian</a> 2008-05-09 12:11 <a href="http://www.cnitblog.com/kenlistian/archive/2008/05/09/43540.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>flash lite 笔记2</title><link>http://www.cnitblog.com/kenlistian/archive/2008/05/09/43538.html</link><dc:creator>kenlistian</dc:creator><author>kenlistian</author><pubDate>Fri, 09 May 2008 03:20:00 GMT</pubDate><guid>http://www.cnitblog.com/kenlistian/archive/2008/05/09/43538.html</guid><wfw:comment>http://www.cnitblog.com/kenlistian/comments/43538.html</wfw:comment><comments>http://www.cnitblog.com/kenlistian/archive/2008/05/09/43538.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/kenlistian/comments/commentRss/43538.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/kenlistian/services/trackbacks/43538.html</trackback:ping><description><![CDATA[<p><br><br>flash lite actionscript 1.0 and 1.1</p>
<p><br>Flash Lite 1.x ActionScript 由几部分组成：</p>
<p>1.Flash Player 4 ActionScript <br>2.包含电话集成命令和属性。<br>3.支持设备平台功能变量（1.0不支持） <br>4. fscommand2() (1.0不支持)和 fscommand()</p>
<p><br>说明下：<br>a.1.x版本由于采用flash4的引擎，故支持<br>运算符（如比较运算符和赋值运算符）<br>影片剪辑属性（如 _height、_x 和 _y）<br>时间轴控制函数（如 gotoAndPlay() 或 stop()）<br>网络函数（如 loadVariables() 和 loadMovie() 函数）（仅限 Flash Lite 1.1）。</p>
<p>不支持的Flash 4 ActionScript的函数有：<br>startDrag(),stopDrag(),_dropTarget ，_soundBufTime，_url，String()</p>
<p>b. 1.0 和 1.1 的差异</p>
<p>1.1功能在1.0 中不可用有：</p>
<p>1.网络访问或网络状态信息。<br>&nbsp;&nbsp;&nbsp; 如，在 Flash Lite 1.0 中，不能使用 loadVariables() 或 loadMovie()<br>&nbsp;&nbsp;&nbsp; 函数来加载外部数据或 SWF 文件，也不能使用各种 fscommand2() 命令<br>&nbsp;&nbsp;&nbsp; 来确定设备的连接信号强度或网络请求的状态。 </p>
<p>2.获取设备的时间和日期信息。 <br>&nbsp; 提供有关 Flash Lite 平台以及设备的功能信息的平台功能变量。 </p>
<p>3.fscommand2() 函数及其相关联的命令，fscommand2()函数是对fscommand() 的增强<br>&nbsp;&nbsp;&nbsp; <br>4.scroll 和 maxscroll 文本字段属性。 </p>
<p>c. 1.x 中不可用的编程功能有：</p>
<p>1. 不支持定义和调用自定义函数的功能。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 但可用 call() 函数来执行位于时间轴中任一帧上的代码。<br>2. 不支持本机数组数据结构或其它复杂数据类型。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 但可以使用伪数组来模拟数组。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 伪数组是一种需要使用 eval() 函数来动态计算相连字符串的技术。</p>
<p>3.在运行时加载外部图像文件或声音文件.<br>&nbsp;&nbsp; 无法加载外部 JPEG 文件或 MP3 文件。<br>&nbsp;&nbsp; 在1.1 中，可以使用 loadMovie() 函数来加载外部SWF文件。</p>
<p><br>&nbsp;</p>
<img src ="http://www.cnitblog.com/kenlistian/aggbug/43538.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/kenlistian/" target="_blank">kenlistian</a> 2008-05-09 11:20 <a href="http://www.cnitblog.com/kenlistian/archive/2008/05/09/43538.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>flash lite 学习1</title><link>http://www.cnitblog.com/kenlistian/archive/2008/05/09/43534.html</link><dc:creator>kenlistian</dc:creator><author>kenlistian</author><pubDate>Fri, 09 May 2008 02:50:00 GMT</pubDate><guid>http://www.cnitblog.com/kenlistian/archive/2008/05/09/43534.html</guid><wfw:comment>http://www.cnitblog.com/kenlistian/comments/43534.html</wfw:comment><comments>http://www.cnitblog.com/kenlistian/archive/2008/05/09/43534.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/kenlistian/comments/commentRss/43534.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/kenlistian/services/trackbacks/43534.html</trackback:ping><description><![CDATA[<p>Flash Lite是放在手机设备上的一个swf播放软件。描述如下：</p>
<p>Macromedia Flash Lite 是适用于移动电话的Macromedia Flash Player <br>的一个版本。Flash Lite 当前有两个版本：<br>&nbsp; Flash Lite 1.0 <br>&nbsp; Flash Lite 1.1<br>&nbsp;&nbsp;&nbsp;<br>Flash Lite 包含以下功能：</p>
<p>。核心渲染引擎 该渲染引擎处理所有的矢量和位图渲染。 </p>
<p>。ActionScript解释器 <br>&nbsp;&nbsp; Flash Lite 只支持 Flash Player 4 中使用的ActionScript语言版本，<br>包括许多移动设备专用的命令，如从设备上获取时间和日期信息。<br>Flash Player 4 ActionScript与具有特定于 Flash Lite 属性命令的混合体<br>统称为 Flash Lite 1.x ActionScript。 </p>
<p>。文本和字体 Flash Lite 支持静态、动态和输入文本字段。<br>&nbsp;&nbsp; 可以使用设备中可用的字体或将字体数据嵌入到已发布的 SWF 文件中。<br><br>。声音 Flash Lite 1.0 和 Flash Lite 1.1 都支持设备音频格式（如 MIDI 或 MFi）。<br>&nbsp;&nbsp; Flash Lite 1.1 还支持标准 Flash 音频<br><br>。网络连接 Flash Lite 1.1 支持加载外部数据和 SWF 文件的功能，<br>&nbsp;&nbsp; 以及获取连接和HTTP请求状态信息的命令和属性。</p>
<p>设备和平台集成 Flash Lite 提供对多个系统功能和命令的访问，<br>如初始化电话呼叫和短消息服务 (SMS) 消息、获取平台功能信息<br>和使用设备的标准输入对话框获取用户输入的功能。</p>
<p>******<br>版本为1.1的播放器描述&nbsp;<br></p>
<p>独立的 Flash Lite 1.1 播放器是这样一个应用程序：</p>
<p>它允许您打开和查看位于您设备内存卡中的 SWF 文件、<br>在设备的移动 Web 浏览器中浏览到的 SWF 文件或者通过<br>Bluetooth 无线技术或红外线连接在设备的消息收件箱中<br>接收到的 SWF 文件。</p>
<p><br>以下平台和设备的独立的播放器在全球范围内可用：<br>(现在应该支持的更多)</p>
<p>Series 60 平台：</p>
<p>Nokia 3600、3620、3650、3660、6260、6600、6620、6630、6670、6680、<br>6681、7610、N-Gage、N-Gage QD <br>Sendo X <br>Siemens SX1 <br>UIQ 平台：</p>
<p>Sony Ericsson P900、P910 &nbsp;</p>
<p><br>******************<br>flash lite&nbsp;&nbsp; 支持以下内容类型：</p>
<p>无非就是用flash lite 再包了一层，如同虚拟机，在flash lite上<br>编写swf格式文件通过flash lite去和应用层，底层交互。<br><br>实际上，能实际用到的也就是一两样。当然看如何开发功用上了。<br><br>通讯簿 <br>用 Flash Lite 允许用户将 SWF 文件与用户设备的通讯簿应用程序中的条目相关联。<br>NTT DoCoMo 和 Vodafone（仅限日本）<br>&nbsp;<br>警报<br>用 Flash Lite 允许用户选择一个 SWF 文件作为设备警报进行播放。<br>KDDI 和 Vodafone（仅限日本）<br>&nbsp;<br>浏览器<br>用 Flash Lite 可呈现嵌入在移动网页中的 Flash 内容，在设备的 Web 浏览器中查看。<br>NTT DoCoMo、KDDI 和 Vodafone（仅限日本）<br>&nbsp;<br>通话历史记录<br>用 Flash Lite 显示与用户通讯簿中每个条目关联的图像或动画，及用户的姓名和电话号码。 <br>KDDI（仅限 Casio 电话）<br>&nbsp;<br>通话屏幕<br>用 Flash Lite 可在用户接听或拨打电话时显示动画。<br>NTT DoCoMo 和 KDDI（仅限日本）<br>&nbsp;<br>Chaku Flash<br>用 Flash Lite 允许用户选择作为呼入电话的铃声而播放的 SWF 文件。<br>KDDI（仅限日本）<br>&nbsp;<br>Data Box<br>用 Flash Lite 可以在设备的 Data Box 应用程序中呈现 Flash 内容，用户即可管理和预览设备上的多媒体文件。<br>NTT DoCoMo、KDDI 和 Vodafone（仅限日本）<br>&nbsp;<br>Data Folder<br>用 Flash Lite 可以在设备的 Data Folder 应用程序中呈现 Flash 内容，用户即可管理和预览设备上的多媒体文件。<br>KDDI（仅限日本）<br>&nbsp;<br>图标菜单<br>&nbsp;用 Flash Lite 允许用户选择设备的启动应用程序的自定义图标菜单。<br>&nbsp;KDDI（仅限 Casio 电话）<br>&nbsp;<br>Image Viewer<br>&nbsp;用 Image Viewer 应用程序，该应用程序允许用户管理和预览设备上的多媒体文件，包括 SWF 文件。<br>&nbsp;NTT DoCoMo（仅限日本）<br>&nbsp;<br>呼入电话<br>&nbsp;用 Flash Lite 可以在用户接听电话时显示动画。<br>&nbsp;NTT DoCoMo、KDDI 和 Vodafone（仅限日本）<br>&nbsp;<br>Mailer<br>&nbsp;用 Flash Lite 可在用户发送或接收电子邮件时显示动画。<br>&nbsp;Vodafone（仅限日本）<br>&nbsp;<br>多媒体<br>&nbsp;用 Flash Lite 可以预览 SWF 文件（以及其它多媒体格式）。<br>&nbsp;KDDI（仅限日本）<br>&nbsp;<br>My Picture<br>&nbsp;用 My Picture 应用程序，该应用程序允许用户管理和预览设备上的 SWF <br>文件以及其它图像格式。<br>&nbsp;NTT DoCoMo（仅限日本）<br>&nbsp;<br>OpenEMIRO<br>&nbsp;当设备从待机模式返回时显示 Flash Lite 内容。这与其它设备上的"开机屏幕"内容类型相似。<br>&nbsp;KDDI（仅限 Casio 设备）<br>&nbsp;<br>屏幕保护程序<br>&nbsp;用 Flash Lite 可以显示设备的屏幕保护程序。<br>&nbsp;KDDI 和 Vodafone（仅限日本）<br>&nbsp;<br>SMIL 播放器<br>&nbsp;用Flash Lite 可以预览 SWF 文件（以及其它多媒体格式）。<br>&nbsp;KDDI（仅限日本）<br>&nbsp;<br>独立播放器<br>&nbsp;Flash Lite 可以作为一个独立的应用程序，用户可以启动和查看位于设备上或用户在消息收件箱中接收的任意 SWF 文件。<br>&nbsp;对选择 Symbian Series 60 和 UIQ 设备全局可用。<br>&nbsp;<br>待机屏幕<br>&nbsp;使用 Flash Lite 可以显示设备的待机屏幕（或壁纸屏幕）。 <br>&nbsp;NTT DoCoMo 和 KDDI（仅限日本）<br>&nbsp;<br>Sub LCD<br>&nbsp;使用 Flash Lite 可以在某些翻盖手机的外部或辅助屏幕上显示内容。<br>&nbsp;KDDI（仅限日本）<br>&nbsp;<br>开机屏幕<br>&nbsp;使用 Flash Lite 可在开机时显示动画。<br>&nbsp;NTT DoCoMo（仅限日本）<br>&nbsp;<br>&nbsp;</p>
<img src ="http://www.cnitblog.com/kenlistian/aggbug/43534.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/kenlistian/" target="_blank">kenlistian</a> 2008-05-09 10:50 <a href="http://www.cnitblog.com/kenlistian/archive/2008/05/09/43534.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>