<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>追风想追风的追风</title>
	<atom:link href="http://www.jvcj.cn/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.jvcj.cn</link>
	<description>个人小站而已</description>
	<lastBuildDate>Fri, 14 Aug 2009 14:24:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>as3载入库中元件-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=970</link>
		<comments>http://www.jvcj.cn/?p=970#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:24:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[as3载入库中元件
2009年02月09日 星期一  14:35



&#160;&#160;&#160;&#160;&#160;&#160;&#160;  我们在制作FLASH交互式影片时，经常要动态调用库中的元件，在以前的版本中我们只需要简单的操作即可，但在FLASH AS3中，我们使用不同的运行机制。那就是类的概念，每一个库中的元件都是一个类，我们要通过对类的实例化来动态调用库中的元件。接下在我们通过一个实例讲解。
&#160;&#160;&#160;&#160;&#160;&#160;  新建一个FLASH 文档，在舞台上绘制一个元件，在库中，选择属性，在打开的属性面板中设置如下：


在设置好之后，我们在帧中添加脚本:
var my:fang=new fang  ;
addChild(my);
my.x=100;
my.y=100
我们来仔细分析一下脚本，
第一行：定义了一个变量类型为fang的变量，这个fang就是我们刚才在属性面板中定义的。
第二行：将这个实例添加到显示列表，这样这个元件就会在舞台上显示。
第三行：这一行和下一行是定义元件在舞台中位置。我们均设置为100.
好了，现在可以测试影片了。




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=970</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>AS3教程-自定义应用程序属性-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=969</link>
		<comments>http://www.jvcj.cn/?p=969#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:23:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[AS3教程-自定义应用程序属性
2008年12月30日 星期二  17:48



问题
我要改变SWF的尺寸或背景颜色
解决方法
指定项目属性里的编译器参数或者class文件的metadata 。
讨论
不像早期版本的Flash，ActionScript 3.0 编译器真正是一个命令行编译器。你可以通过命令
行再加上一长串参数来创建类或目录，在eclipse里让这一切变得更简单些。
当建立ActionScript 工程后，默认情况下会生成500&#215;375 尺寸的.swf, 帧速为24/秒，背景
色为蓝色。我们可以改变这些设定，有几种方法。
第一种方法就是通过ActionScript编译器参数改变编译器设定。右键点击工程，在菜单中选
择Properties ， 然后在左边选择ActionScript Compiler ， 在右边找到&#34;Additional compiler
arguments.&#34; 在这里就可以输入参数了，下面是些常见的参数
-default-size width height
-default-background-color color
-default-frame-rate fps
可以这样写：
-default-size 800 600
-default-background-color 0xffffff
-default-frame-rate 31
第一个参数设定输出swf尺寸为800&#215;600 象素. 第二个参数设定背景色为白色，第三个参数
设定播放帧速为31帧每秒。多个参数可以这样写：
-default-size 800 600 -default-frame-rate 31
第二种方法就是通过类文件种的metadata 来改变设定。Metadata 中包含的语句不会立即
被解释，但是在编译的时候编译会去检测。下面的语句具有等同效果
[SWF(width=&#34;800&#34;, height=&#34;600&#34;, backgroundColor=&#34;#ffffff&#34;, frameRate=&#34;31&#34;)]
这一行语句放在import之后，类定义之前，如：
package &#8230;{
import flash.display.Sprite;
[SWF(width=&#34;800&#34;, height=&#34;600&#34;, backgroundColor=&#34;#ffffff&#34;, frameRate=&#34;31&#34;)]
public class ExampleApplication extends Sprite
{
public function ExampleApplication()
{
}
}
}




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=969</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3教程-在哪里写ActionScript-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=968</link>
		<comments>http://www.jvcj.cn/?p=968#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:22:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[AS3教程-在哪里写ActionScript
2008年12月30日 星期二  17:48



问题
当你有了ActionScript工程后，接着就需要知道任何输入代码。
解决方法
在类结构中或方法体中添加ActionScript 代码
讨论
在以前的ActionScript 1.0 和2.0中, 有多种途径添加代码：在时间线上，按钮上或电影剪辑
上，在电影剪辑的时间线上通过＃include命令引入外部的as文件或class文件。但是ActionScript
3.0 是完全基于类的，所以所有的代码都必须放置在类文件中。
当你创建一个新的ActionScript 工程后，主类文件被自动创建，并且在代码视图中代开了，
刚开始的代码大概是这样的：
package &#8230;{
import flash.display.Sprite;
public class ExampleApplication extends Sprite
&#8230;{
public function ExampleApplication( )
&#8230;{
}
}
}
可能你很熟悉ActionScript 2.0中的类, 但是3.0发生了很多变化，这些我们将在第二章讨论，
在这里先学完基础概念先。
首先注意到代码顶层有个关键字package
，Packages（包） 是用来组织一群相关联的类文
件的。在ActionScript 2.0, 包是用来判断类文件的路径。在ActionScript 3.0 中必须指定包，例
如，我们有个utility类包，要这样申明：
package
com.as3cb.utils
{}
如果你不指明包名，那么该类就输入最顶层的默认包。
接下来，加入import
语句，引入一个类就相当于在当前的代码文件中创建了使用该类的
快捷方式，这样我们就不需要输入全路径来使用它了。例如，你可以使用下面的import 语句：
import
com.as3cb.utils.StringUtils;
这样我们就可以直接引用StringUtils 这个类了。从flash.display 引入Sprite 类是因为默
认的类文件继承了Sprite 类。
接下来就看到我们的主类ExampleApplication，注意到在class关键字前有个关键字public
，表明该类是共有的。最后有个公共方法，方法名和主类一样，这种方法称为构造器，当一个
类实例被创建时，其构造器会被自动执行，在这里，当swf文件被Flash 播放器载入时构造器就
会被执行。In this case, it is executed as soon as the .swf is loaded into the Flash player. So
where do you put your code to [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=968</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3学习心得-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=967</link>
		<comments>http://www.jvcj.cn/?p=967#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:21:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[AS3学习心得
2009年01月05日 星期一  12:32



&#160;&#160;&#160;&#160;&#160;&#160;  一直一来都是用FLASH AS2.0做东西，现在AS3.0已经出来有一段时间了，一直没有时间来得及学习，正好赶上元旦放假有时间，特地从网上下载了几份AS3的电子书进行学习，看了3天，感觉越看越糊涂，还不如自己摸索。AS2和AS3有很大的不同，这我也听几个爱好FLASH的朋友说过，听说连一个鼠标相应事件都麻烦极了！这不禁又激起我奋斗的欲望。
&#160;&#160;&#160;&#160;&#160;&#160;&#160;  第四天，在QQ群里下载了11个实例，还是动手做好，将例子看了看，自己有根据AS2的经验，结合AS3的新东西，做了一个超简单，超白痴的实例，呵呵。就是一个方块不停的向右移动，够简单吧。可以这个脚本困惑了我三天现在终于有点眉目了。总结一下，又发现AS2和AS3的差别并不是很大。也奇怪，会者不难，难者不会。把我自己的理解写下来，供大家参考，为了是让大家少走一些弯路，更快的入门，并掌握AS3。
&#160;&#160;&#160;&#160;&#160;  首先，要想掌握AS3必须熟悉了解类的概念，这个类在AS2中就有所体现。只不过不是那么严格规定的。那么类在AS3占有什么样的地位呢？我理解为类就是AS3。之所以这样说是因为，在FLASH CS3中，已经将动画和脚本分离了，作为脚本部分，类就是脚本的全部。可能有人觉得我说的话有些偏激，但事实上确实存在这样的关系。
&#160;&#160;&#160;&#160;&#160;  那么在编写类的时候我们应该注意什么呢？
&#160;&#160;&#160;  我总结一下几条：
1、包的路径正确。
2、类的声明正确。
3、用什么类，导入什么类。
&#160;&#160;&#160;  这三条看似简单，实际上非常重要。我们首先来看包路径正确，那么就是说，你在引用这个类的时候，你所提供的路径必须正确，保证FLASH能够找到你所编写的类。我想这一点重要性没有必要在深入讨论。
第二条是类的声明正确。这一点说明三名一直，分别是类名，构造器函数名，保存的文件名，这三个名称必须一致，否则将导致编译错误。
第三条，我个人认为也是最重要的一条，就是用什么类导入什么类。假如我们舞台上有一个影片剪辑，我们想调用影片剪辑的属性，例如改变他的位置，那么我们就要导入MovieClip类。如果我们没有导入MovieClip类，那么将出现编译错误。我想说的就是这一点。明白了这一点，我想学习FLASH AS3的难度可能会大大降低。




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=967</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3打开网页-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=966</link>
		<comments>http://www.jvcj.cn/?p=966#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:20:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[as3打开网页
2009年02月09日 星期一  14:23



&#160;&#160;&#160;&#160;&#160;&#160;&#160;  好久没有写教程了，最近一直比较忙，各种项目多的不可数，不过还是抽时间来管理一下我的空间。从今天开始我就又开始写教程了。这次先从一个简单的FLASH打开网页的实例入手吧！
&#160;&#160;&#160;&#160;&#160;&#160;  首先打开FLASH CS4！大家用FLASH CS3也可以，新建一个as3文档，注意脚本的版本，一定要是AS3的。我们接下来在舞台上绘制一个按钮元件，并将他命名为&#8220;linkButton&#8221;。注意名称，要和后面的脚本一致！
&#160;&#160;&#160;&#160;&#160;  接下来我们在幀面板中添加脚本如下：
function gotoAdobeSite(event:MouseEvent):void {
 var adobeURL:URLRequest=new URLRequest(&#34;http://hi.baidu.com/暗黑侧卫&#34;);
 navigateToURL(adobeURL);
}
linkButton.addEventListener(MouseEvent.CLICK, gotoAdobeSite);
&#160;&#160;&#160;&#160;&#160;&#160;  我们仔细来学习一下这段代码。第一句，定义了一个名为&#8220;gotoAdobeSite&#8221;的函数，他的响应时间类型为鼠标响应事件。同时没有返回值，没有返回值从&#8220;void&#8221;定义。
&#160;&#160;&#160;&#160;&#160;&#160;  第二句，定义了一个名为&#8220;adobeURL&#8221;，类型为&#8220;URLRequest&#8221;，值为&#8220;&#34;http://hi.baidu.com/暗黑侧卫&#34;&#8221;的变量。这个变量将作为下面的代开网页代码中的参数使用。
&#160;&#160;&#160;&#160;&#160;&#160;  第三句，我们调用了  navigateToURL函数，这个函数有一个参数，这个参数的类型必须为URLRequest，也就是我们刚才定义的变量，将这个变量作为参数传递到navigateToURL函数中。
&#160;&#160;&#160;&#160;&#160;&#160;&#160; 第四句，也是最后一句，绑定了按钮的侦听器，这样按钮就被绑定了点击的侦听事件，当按钮上发生点击事件时便调用gotoAdobeSite函数，也就是打开网页的语句。那么这个侦听器事件有2个参数，第一个就是要侦听的事件，我们设置为MouseEvent.CLICK，也就是鼠标点击，第二个参数是要调用的函数名称，我们设置为&#8220;gotoAdobeSite&#8221;，也就是我们在一开始定义的函数。这样便完成了连接网页的工作。我们测试一下影片剪辑吧！
&#160;&#160;&#160;&#160;&#160;&#160;&#160;  点击按钮将打开我们想要的网页。




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=966</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3载入外部图片-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=965</link>
		<comments>http://www.jvcj.cn/?p=965#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:19:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[as3载入外部图片
2009年02月09日 星期一  14:51



&#160;&#160;&#160;&#160;&#160;&#160;&#160;  首先看看我们需要的文件位置，如图：
asd.jpg就是我们要导入的外部图片，要保持名称和路径正确。
打开FLASH文档，在第一帧添加脚本如下：
var lu:URLRequest=new URLRequest(&#34;asd.jpg&#34;);
var tu:Loader=new Loader  ;
tu.load(lu);
addChild(tu);
tu.x=150;
我们来仔细看一下这段脚本。
第一行：定义一个类型为URLRequest的变量，他的值为asd.jpg，也就是图片的路径。
第二行：定义一个类型为Loader的变量，他作为一个图片的容器。
第三行：执行载入命令。
第四行：将图片添加到显示列表。
第五行：设置图片的位置。
接下来我们就可以测试影片了!




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=965</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3第一个程序-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=964</link>
		<comments>http://www.jvcj.cn/?p=964#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:18:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[as3第一个程序
2009年02月10日 星期二  21:02


&#160;&#160;&#160;&#160;&#160;&#160;&#160;  今天我们来学习如何使用AS3的类文件，我们将使用类文件制作一个最为简单的程序，首先我们来看一下文件的存储位置关系。

我们来编写cewei.as文档，代码如下：
package {
 import flash.display.Sprite;
 public class cewei extends Sprite {
&#160;&#160; public function cewei() {
&#160;&#160;&#160; trace(&#34;你好！&#34;);
&#160;&#160; }
 }
}
在FLASH文档的属性面板中，的类中写入&#8220;cewei&#8221;。然后测试影片，我们就可以在输出面板中看到&#8220;你好！&#8221;字样。
我们仔细看一下这段脚本，package是包的意思，也就是说我们将脚本全都封装到包中，
import flash.display.Sprite;
导入flash包中的display.Sprite类，这样我们便能继承Sprite类了。public class cewei extends Sprite 定义了一个cewei类，这个类继承了Sprite类。下面我们创建了一个构造器函数，这个构造器函数在类被实例化的时候调用，执行里面的语句 trace(&#34;你好！&#34;);
这样便完成了在输出面板中输出的命令！



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=964</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3按钮事件-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=963</link>
		<comments>http://www.jvcj.cn/?p=963#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:17:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[as3按钮事件
2009年02月12日 星期四  11:20



&#160;&#160;&#160;&#160;&#160;&#160;&#160;  本节我们来学习一下按钮的响应事件，首先我们在舞台上绘制一个按钮元件，这个按钮元件要命名为&#8220;bet&#8221;，注意名称要和后面的脚本一致。接下来我们在帧中添加脚本如下：
bet.addEventListener(MouseEvent.CLICK,fu);
function fu(event:MouseEvent) {
 trace(&#34;你好&#34;);
}
我们来看一下这段脚本。bet.addEventListener(MouseEvent.CLICK,fu);这句是注册侦听器事件，侦听对象为bet，侦听的事件类型为&#8220;MouseEvent.CLICK&#8221;，也就是点击事件，当事件发生时调用函数&#8220;fu&#8221;。也就是我们的第二个参数。下面我们便定义了一个名为&#8220;fu&#8221;的函数，这个函数是响应事件被执行的部分，在函数中我们要执行语句trace(&#34;你好&#34;);也就是在输出面板输出&#8220;你好&#8221;字样。这样我们便完成了这个实例。大家可以自己试试，测试一下影片，当按下按钮时，在输出面板输出&#8220;你好&#8221;！




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=963</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>as3滚轮响应事件-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=962</link>
		<comments>http://www.jvcj.cn/?p=962#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:16:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[as3滚轮响应事件
2009年02月12日 星期四  12:56



&#160;&#160;&#160;&#160;&#160;&#160;&#160;  本接我们来学习如何使用FLASH AS3来响应鼠标的滚轮事件。首先我们在舞台上绘制一个影片剪辑，将它的命名名称设置为&#8220;my_mc&#8221;。然后我们在帧中添加脚本，脚本如下：
my_mc.addEventListener(MouseEvent.MOUSE_WHEEL,an);
function an(Event:MouseEvent):void{
 trace(&#34;你好&#34;)
}
好！现在来测试影片，当我们将鼠标放置到影片剪辑上同时滚动鼠标滚轮时，我们在输出面板将看到&#8220;你好&#8221;字样！
我们来看这段脚本最为关键的一句my_mc.addEventListener(MouseEvent.MOUSE_WHEEL,an);
这句中MouseEvent.MOUSE_WHEEL就是注册鼠标滚轮的响应事件。




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=962</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3检测鼠标是否移动-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=961</link>
		<comments>http://www.jvcj.cn/?p=961#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:15:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[as3检测鼠标是否移动
2009年02月12日 星期四  13:05



&#160;&#160;&#160;&#160;&#160;&#160;&#160;  本节我们来学习如何检测鼠标是否移动，首先我们在舞台上绘制一个影片剪辑，将他命名为&#8220;my_mc&#8221;，然后我们在幀中写入代码:
my_mc.addEventListener(MouseEvent.MOUSE_MOVE,an);
function an(Event:MouseEvent):void{
 trace(&#34;你好&#34;)
}
我们此时就可以测试影片了！当鼠标移动到影片剪辑上，并且移动鼠标，此时便输出&#8220;你好&#8221;字样。我们来看一下关键语句MouseEvent.MOUSE_MOVE，这句就是检测鼠标移动的语句。




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=961</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3右键菜单设置-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=960</link>
		<comments>http://www.jvcj.cn/?p=960#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:14:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[as3右键菜单设置
2009年02月12日 星期四  14:16



&#160;&#160;&#160;&#160;&#160;&#160;&#160;  本节我们来学习如何设置右键菜单。首先我们要知道设置右键菜单需要ContextMenu类，下面我们来看一下脚本：
//////右键菜单设置
var myContextMenu:ContextMenu = new ContextMenu();
myContextMenu.hideBuiltInItems();
//声明菜单新项
var item:ContextMenuItem=new ContextMenuItem(&#34;A闪工作室&#34;);
//添加到菜单显示项目数组
myContextMenu.customItems.push(item);
this.contextMenu=myContextMenu;
function youjian(event:ContextMenuEvent):void {
var ashan:URLRequest=new URLRequest(&#34;http://hi.baidu.com/暗黑侧卫&#34;);
navigateToURL(ashan,&#34;_self&#34;);
}
我们来仔细讲解一下这段脚本。
第一句：定义了一个ContextMenu类型的对象，这个对象将用来对菜单的操作。
第二句：将其他的菜单屏蔽。
第三句：新建了一个参带项，他的显示名称为&#8220;A闪工作室&#8221;。
后面的语句是定义了这个菜单项的响应事件！




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=960</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3.0包的创建-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=959</link>
		<comments>http://www.jvcj.cn/?p=959#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:13:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[AS3.0包的创建
2009年03月18日 星期三  21:02



&#160;&#160;&#160;&#160;&#160;&#160;&#160;  我们知道，AS3.0的核心思想就是类，一切程序都是遵循这个主要思想来实现的。在类的基础上我们有拓展出了包的概念！这是一个比较新的概念，在AS2.0中并没有包这一概念！那么包有什么好处呢？
&#160;&#160;&#160;&#160;&#160;&#160;&#160;  包有助于我们组织代码，我们可以通过包讲代码模块化！这样就打到了一个便利的编程环境。这也是包之所以产生的原因。光说大家一定很难理解我所说的话。那么下面我们就详细来讲解一下包以及包的使用方法。
&#160;&#160;&#160;&#160;&#160;&#160;&#160;  首先我们知道包是在外部类文件中出现的！就是一个以as为后缀名的文件，我们首先定义包要写关键字&#8220;package&#8221;，这个&#8220;package&#8221;的中文意思就是包的含义，也就是说我们在编写外部类文件时首先要定义一个包，讲我们所需要编写的脚本都放入这个包中，当然也有例外的情况，就是在包外也含有类，这种类就是我们常说的包外类，关于包外类我们将在以后讲解到！下面我们来看一个创建包的实例：
package{
&#160;&#160;&#160;&#160;&#160;&#160;  public class cewei{&#8230;}
}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;  这就是一个标准的包，我们很方便的就创建了一个包！接下来我们来了解一下如何创建包的路径，这就需要在原来的语句基础上进行一点更改，假如我们这个包位于文件夹cewei-&#62;文件夹ashan中，那么我们定义包的时候就应该这样写：
package cewei.ashan{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;  public class cewei{&#8230;}
}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;  这样，我们在&#8220;package&#8221;关键字后面我们要写入包的路径，如果不写入这个路径编译器就无法找到我们所需要的类！然后我们创建好包之后我们就要导入包！关于导入包我们将在下一节为大家进行讲解。




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=959</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3.0导入包-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=958</link>
		<comments>http://www.jvcj.cn/?p=958#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:12:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[AS3.0导入包
2009年03月18日 星期三  21:22



&#160;&#160;&#160;&#160;&#160;&#160;&#160;  上一节中我们探讨了如何创建包，本节课我们来了解一下如何讲这些创建好的包导入到FLASH文件当中，要导入这些包也是非常简单的！但是有几个地方需要大家注意，很多新手都会这一些细节问题上出现问题，所以大家在导入包时一定要认真仔细。
&#160;&#160;&#160;&#160;&#160;&#160;&#160;  我们导入包所使用的关键字就是&#8220;import&#8221;，这个&#8220;import&#8221;就是导入的意思，后面要接的就是要导入类文件的路径，例如：
import cewei;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;  这样我们就导入了一个与FLA文件同文件夹中的一个名为cewei的外部类。这样我们就可以使用这个类了！但是现在有一个问题，当我们这个类文件与FLA文件不在同一文件夹中，那么怎么办呢？这时我们就要在导入的后面输入这个类文件的路径，例如，我们在文件夹-&#62;cewei-&#62;文件夹ashan中含有一个名为&#8220;cewei&#8221;的类文件，此时我们要导入这个类文件，我们该如何编写代码呢？
import cewei.ashan.cewei;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;  这样我们就导入了这个类文件，此时我们就可以使用这个类了。




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=958</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3.0中的拖动-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=957</link>
		<comments>http://www.jvcj.cn/?p=957#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:11:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[AS3.0中的拖动
2009年03月18日 星期三  22:33



&#160;&#160;&#160;&#160;&#160;&#160;&#160;  从本节可开始我们讲通过一个拖动的实例为大家讲解类的使用方法！注意我们的重点在于教会大家如何使用类，而并非教会大家如何拖动影片剪辑。我们要明确教学目标，好了现在让我们来做第一个拖动的实例，在一开始我们并不使用类，目的是为了让大家理解拖动这个运动原理，在理解拖动的基础上，我们再讲代码更改为使用类编辑，这样大家理解起来会比较容易。好了！现在就让我们进入代码的神奇世界。
&#160;&#160;&#160;&#160;&#160;&#160;&#160;  首先，我们在舞台上绘制一个影片剪辑，讲这个影片剪辑的实例名称设置为&#8220;an_mc&#8221;，这个影片剪辑就是我们要控制的对象，然后我们就要开始编写代码了！我们新建一个图层，在新图层中我们选中第一帧，然后我们添加代码，如下：
an_mc.addEventListener(MouseEvent.MOUSE_DOWN,anxia);
function anxia(Event:MouseEvent):void {
&#160;&#160;&#160;&#160;&#160;  an_mc.startDrag();
}
an_mc.addEventListener(MouseEvent.MOUSE_UP,fang);
function fang(Event:MouseEvent):void {
&#160;&#160;&#160;&#160;&#160;  an_mc.stopDrag();
}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;  这样我们就完成了一个按下影片剪辑就开始拖动，释放影片剪辑就停止拖放的实例！好了，我想对于新手来说还不太明白这段语句的含义，让我们一一来解释一下。
an_mc.addEventListener(MouseEvent.MOUSE_DOWN,anxia);
这句话的意思就是在影片剪辑an_mc上注册一个侦听器，这个侦听器是时间响应类型是MouseEvent.MOUSE_DOWN（按钮按下），然后当这个事件发生时，我们调用anxia函数。
function anxia(Event:MouseEvent):void {
&#160;&#160;&#160;&#160;&#160;  an_mc.startDrag();
}
我们定义了一个名为anxia的函数，这个函数的功能是执行影片剪辑an_mc的拖动动作。好了这就是这段语句的含义！也非常的简单，后面的语句和上面的含义是一样的，只不过执行的是释放拖动的动作，大家自己写写脚本就可以理解他的含义！下一节课我们讲带领大家编写拖动的外部类。




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=957</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3.0类的编写-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=956</link>
		<comments>http://www.jvcj.cn/?p=956#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:10:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[AS3.0类的编写
2009年03月19日 星期四  15:54



&#160;&#160;&#160;&#160;&#160;&#160;&#160;  本节我们根据上一节中的实例来编写类文件，编写类文件需要一些其他的知识，这些知识我们将在以后的教程中逐渐讲解到，好了！现在让我们来看看如何编写一个可以控制影片剪辑拖动的类，首先我们要知道这个类文件的位置，他位于文件夹cewei-&#62;文件夹ashan中，名称为touming.as，下面我们就来编写这个类文件。代码如下：
package cewei.ashan{
 import flash.display.DisplayObject;
 public class touming extends DisplayObject {
&#160;&#160; public static function tou(mubiao) {
&#160;&#160;&#160; mubiao.alpha=0.5;
&#160;&#160;&#160; mubiao.startDrag();
&#160;&#160; }
&#160;&#160; public static function shifang(mubiao) {
&#160;&#160;&#160; mubiao.alpha=1;
&#160;&#160;&#160; mubiao.stopDrag();
&#160;&#160; }
 }
}
这样我们就完成了类的创建，我们逐句对脚本进行解释一下！
package cewei.ashan{
创建一个包，我们这个包中包含了我们所创建的类。
import flash.display.DisplayObject;
导入一个类，这个类是我们需要用到的一个含有的拖动脚本的类，是我们继承的基类。
public class touming extends DisplayObject {
这里我们创建了一个类，这个类是一个公有类，也就是说，这个类可以被外部的脚本访问。这个类同时又继承了DisplayObject类，这样我们的类就可以执行拖放动作了！
&#160;&#160; public static function tou(mubiao) {
&#160;&#160;&#160; mubiao.alpha=0.5;
&#160;&#160;&#160; mubiao.startDrag();
&#160;&#160; }
这里我们定义了一个静态方法，也就是说，我们不需要通过实例化类来调用这个方法，我们可以直接的调用这个方法了！这个关键字就是static。他接受一个参数，这个参数就是我们要控制的对象，我们在FLA文件中编写脚本时要想方法传递这个参数，否则编译器不知道我们要处理那一个影片剪辑。&#160;&#160; mubiao.alpha=0.5;是讲影片剪辑的透明度更改为原来的一半，mubiao.startDrag();则是执行对影片剪辑的拖动动作！
&#160;&#160;&#160;&#160;&#160;&#160;&#160;  好了，关于类的编写我们就说这么多了！接下来我们就编写FLA文件吧！
&#160;&#160;&#160;&#160;&#160;&#160;&#160;  在FLASH文件中，我们绘制一个影片剪辑，然后将他的实例名称设置为an_mc，然后我们添加一个图层，在第一帧中，我们提价如下代码：
import cewei.ashan.touming;
an_mc.addEventListener(MouseEvent.MOUSE_DOWN,anxia);
function anxia(Event:MouseEvent) {
 [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=956</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>声明常量-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=955</link>
		<comments>http://www.jvcj.cn/?p=955#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:09:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[声明常量
2009年03月28日 星期六  10:57


const 常量名:类型 = 值；



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=955</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>数据类型概述-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=954</link>
		<comments>http://www.jvcj.cn/?p=954#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:08:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[数据类型概述
2009年03月28日 星期六  10:56


简单数据类型
Boolean(布尔)、int(有符整型)、Number(浮点)、String(字符串)、uint(无符整型)
复杂数据类型
Array(数组)、Date(日期)、Error(异常)、Function(函数)、RegExp(正则表达)、XML、XMLList



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=954</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>变量声明-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=953</link>
		<comments>http://www.jvcj.cn/?p=953#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:07:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[变量声明
2009年03月28日 星期六  10:57


var 变量：类型
var 变量：类型 = 值;



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=953</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>基础数据类型-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=952</link>
		<comments>http://www.jvcj.cn/?p=952#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:06:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[基础数据类型
2009年03月28日 星期六  10:57



1.布尔值 Boolean(初始化为false)
2.数字:int uint Number
int  有符号32位整数 -2(31次方) &#8211;  +(2(31次方)-1)
uint 无符号32位整数 0 &#8211;  2(32次方)-1
Number 64位浮点
能用整数优先用int uint，有正负之分，用int。只处理整数，用uint，有小数，用Number。




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=952</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Null、NaN、undefined及各自应用对象：变量的默认值-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=951</link>
		<comments>http://www.jvcj.cn/?p=951#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:05:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Null、NaN、undefined及各自应用对象：变量的默认值
2009年03月28日 星期六  10:59



数据类型 默认值
int&#160;&#160; 0
uint&#160;&#160; 0
Number&#160;&#160; NaN
String&#160;&#160; null
Boolean&#160;&#160; false
Array&#160;&#160; null
Object&#160;&#160; null
没声明&#160;&#160; undefined
*&#160;&#160; undefined
注意:必须声明初值,否则容易出错。




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=951</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Object及关联数组-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=950</link>
		<comments>http://www.jvcj.cn/?p=950#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:04:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Object及关联数组
2009年03月28日 星期六  10:58


var 对象:Object = new Object()
var 对象:Object = {};



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=950</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3运算符，表达式及运用-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=949</link>
		<comments>http://www.jvcj.cn/?p=949#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:03:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[as3运算符，表达式及运用
2009年03月28日 星期六  11:00



typeof、is、as
typeof，用字符串返回对象类型，格式： typeof(对象)
is&#160;&#160;&#160;  ，判断操作符左边的对象是否属于右边的类型，返回值为Boolean，格式： 对象 is 数据类型
as&#160;&#160;&#160;  ，判断操作符左边的对象是否属于右边的类型，属于则返回数据，不属于则返回null，格式： 对象 as 数据类型
typeof对象类型与返回结果对照表
对象类型&#160;&#160;  返回结果
Array&#160;&#160;&#160;  object
Boolean&#160;&#160;&#160;  boolean
Function&#160;&#160;  function
int&#160;&#160;&#160;  number
Number&#160;&#160;&#160;  number
Object&#160;&#160;&#160;  object
String&#160;&#160;&#160;  string
uint&#160;&#160;&#160;  number
XML&#160;&#160;&#160;  xml
XMLList&#160;&#160;&#160;  xml

2.5.12 in
in&#160;&#160;&#160;  ，判断操作符左边的对象是否作为右边对象中的键(Key)或索引，返回值为Boolean
比如：
var a:Array = [&#34;q&#34;,&#34;w&#34;,&#34;e&#34;];
trace(2 in a); //数组中有索引2，返回true
trace(3 in a); //数组中没有索引3，返回false
2.5.13 delete关键字
AS2.0中可以删除任意任意对象的delete关键字，在AS3.0中只能用于删除对象的动态实例属性，非动态属性不能删除。
如果要将一个属性所持有的引用删除，使用 对象名 = null 来进行赋值操作即可。




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=949</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3流程控制-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=948</link>
		<comments>http://www.jvcj.cn/?p=948#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:02:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[as3流程控制
2009年03月28日 星期六  11:00



3.4.5 for&#8230;in和for each&#8230;in
for(var 枚举变量 in 枚举集合) //枚举变量返回为集合元素键名
for each(var 枚举变量 in 枚举集合) //枚举变量返回为集合元素值
3.4.7 break和continue标签的特殊用法
在循环语句前用 标签: 的形式为循环体赋标签，然后就可以在break和continue语句后 加上空格+这个标签，实现控制对应循环的功能。
3.5 AS3.0中switch比较默认使用 === 全等比较，switch条件不会自动执行类型转换，要注意。




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=948</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ActionScript 3 中的函数及高级使用技巧-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=947</link>
		<comments>http://www.jvcj.cn/?p=947#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:01:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[ActionScript 3 中的函数及高级使用技巧
2009年03月28日 星期六  11:01



4.1.1 两种定义函数的方法
函数定义式 &#8211;  函数变量式
函数语句定义法 &#8211; 函数表达式定义法
函数定义式 用function开头，function 函数名(){}
函数变量式 用 var 变量名 = function(){} ，即匿名函数
AS编译器会优先执行定义式的函数,而变量式函数则只能先定义，后使用(与变量一样，先定义，后使用)
变量式中this关键字绑定对象 定义式中this关键字只绑定场景
var num:int = 3;
function testThisA(){
 trace(this.num)
 //此处输出3
}
var testThisB:Function = function(){
 trace(this.num)
 //此处输出300
}
var Obj:Object = {num:300};
Obj.TestA = testThisA
Obj.TestB = testThisB

4.2 参数
4.2.1 按引用传入参数
AS3.0中，所有形参均为引用传入方式，只不过，基元数据是不变对象，所以与传值方式效果一样。
4.2.2 函数默认参数
function 函数名(形参:类型 = 默认值)
4.2.3 形式参数数组
函数中默认自动生成的arguments对象中保存有所有定义中的形参参数
AS2.0中的arguments数组形参对象，存放所有传入的不定个数的形参参数。
而在AS3.0中，argument则被严格限定存放形参定义中所定义个数的形参。
arguments对象有一个length属性和一个callee方法。
function 函数名(形参:数据类型,形参:数据类型){
 trace(arguments.length)
 arguments.callee
 //调用函数本体，一般用于创建递归
}

如果需要传入任意多个参数，则使用AS3.0中的rest关键字，即 &#8230;
特殊关键字 &#8230;(rest)
function 函数名(&#8230;参数名){
 //参数名可随意定义
 trace(参数名.length)
}
最后要注意的，arguments与&#8230;rest关键字不能混用，使用了&#8230;rest则arguments则不能再使用




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=947</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3类和对象 ━━ 从定义到原理-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=946</link>
		<comments>http://www.jvcj.cn/?p=946#comments</comments>
		<pubDate>Fri, 14 Aug 2009 14:00:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[as3类和对象 ━━ 从定义到原理
2009年03月28日 星期六  11:01



5.1 基本类结构
基本结构：HelloWorld
package
{
public class Hello
{
public var helloString:String = &#8216;World&#8217;;
public function Hello(){
}
public function sayHello():void{
&#160;&#160;  trace(&#34;Hello&#34;);
}
}
}

ActionScript3中的类如果想被外部访问，必须放在package(包)中
构造函数与类名相同，为与其它类内函数区分，一般首字母大写。

5.2 Class(类)和Object(对象)
类是对象结构的描述。
5.3 Class的成员
ActionScript3中的Class(类)的构成
·Class的名称和包路径
·构造函数
·属性：包括实例属性和静态静态属性
·方法：包括实例方法和静态方法
AS3中对类的默认访问控制是internal(包内可见)，而非AS2.0中的public

5.4 Class和object的创建和使用
5.4.1 创建Class
参看5.1 基本类结构

5.4.2 创建类的实例
import 包路径.类名
///////////////////////////////////////////////////////////相同包下，不用import类名，可直接引用
var 对象 = new 类()
var 对象:类 = new 类() //推荐
new 关键字后跟的其实不是类名，而是类的构造函数

5.5 Class和package(包)
package格式:
package 项目根.包路径
比如：
package com.kinda.book.display
类名统一用大写字母开头，包路径统一用小写

类体结构安排：
package [包名]{
import 类包;
public class 类
{
&#160;&#160;  //private 静态属性
&#160;&#160;  //private 静态方法
&#160;&#160;  //private 实例属性
&#160;&#160;  //构造函数
&#160;&#160;  [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=946</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ActionScript3中的封装：类的成员、类、包与访问控制-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=945</link>
		<comments>http://www.jvcj.cn/?p=945#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:59:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[ActionScript3中的封装：类的成员、类、包与访问控制
2009年03月28日 星期六  11:02



公认OOP的三大要素为：封装、继承、多态
6.1 什么是封装 [概括]
封装(encapsulation)，又叫隐藏实现(hiding the implementation)，具体的意思是将实现的细节隐藏起来，只将必要的功能接口对外公开。打个比喻就是汽车，用户只需要知道踏油门就会加油，打方向盘就会转向，至于汽车内部的实现细节，用户不用知道，而这些细节，就是属于封装了。
在ActionScript3.0中，使用 访问控制说明符 来控制代码的可见度。
访问控制说明符从&#8220;毫无限制&#8221;到&#8220;严格限制&#8221;的顺序是：
public&#160;&#160; 完全公开
protected 在private的基础上，允许子类访问
internal 包内可见
private&#160;&#160; 类内可见
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃　&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  引用原话:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  ┃
┃&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  ┃
┃&#160;&#160;&#160;&#160;  一个好的OOP程序，就像人开汽车那样，对象和对象之间的交流只限于公开的接口。  ┃
┃  好的OOP程序，没有流程执行先后的概念，只有代码单元之间如何相互交流和协同工作&#160;&#160;  ┃
┃  的模式。这些代码单元，又被称为模块。模块在代码中的表现形式是一个单独的类或&#160;&#160;&#160;  ┃
┃  多个类。这些类共同协作，提供一种或多种服务。&#160;&#160;&#160;  那么如何让一部分接口暴露呢？  ┃
┃  如何隐藏不对外公开的方法呢？使用访问控制说明符，这是实现封装的一个重要方法。  ┃
┃  ActionScript3使用访问控制说明符来告知外部使用者，本代码单元有哪些成员可以被&#160;&#160;  ┃
┃  外部访问到，哪些不能被访问到。将访问控制符从&#8220;毫无限制&#8221;到&#8220;严格限制&#8221;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  ┃
┃  排一下序：public、protected、internal和private。这些访问控制符，清楚明白地&#160;&#160;&#160;  ┃
┃  [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=945</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3命名空间-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=944</link>
		<comments>http://www.jvcj.cn/?p=944#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:58:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[as3命名空间
2009年03月28日 星期六  11:07



7.1 命名空间的简要解释
应用语境,比如&#8220;打&#8221;字在打电话和打球中有不同的语境
7.1.2 第一个命名空间的代码例子
声明命名空间 
namespace 空间名
class 类名{
空间名 function 方法名(){
}
空间名 function 方法名(){
}
}
使用命名空间
use namespace 空间名;
类名.空间名::方法名();




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=944</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ActionScript 3 核心类和全局函数-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=943</link>
		<comments>http://www.jvcj.cn/?p=943#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:57:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[ActionScript 3 核心类和全局函数
2009年03月28日 星期六  11:09



11.1 ActionScript3 中核心类和函数的变化及原因
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃　&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  引用原话:&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  ┃
┃&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  ┃
┃&#160;&#160;  核心类和全局函数是什么？简单地说，就是处于顶级包中的类和函数。从代码编写上说，我们可以在任何地方直&#160;&#160;  ┃
┃接调用它们，而不需要导入包或写全饰名称。从功能上说，它们是一门编程语言中最基础的类和函数，也是最常用到  ┃
┃的功能；从包路径上说，它们处于顶层，在顶级包 （Top-Level Package）中。&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  ┃
┃&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  ┃
┃&#160;&#160;&#160;  在ActionScript3中，顶级包已经发生了很大的变动。ActionScript2中我们熟悉的很多全局函数和类，在&#160;&#160;&#160;&#160;&#160;&#160;&#160;  ┃
┃ActionScript3中都不再是顶级包中的成员了。比如，getTimer()、setInterval()函数就不再是全局函数，而&#160;&#160;&#160;&#160;&#160;&#160;&#160;  ┃
┃MovieClip类、Sound类也已经不再是顶级类。在ActionScript3中，在使用它们之前，必须使用import导入它们所在&#160;&#160;  ┃
┃的包。&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  ┃
┃&#160;&#160;  ActionScript3的核心类有多少？ActionScript2中可以全局访问的类有40多个，全局函数（包括未公开的）有70&#160;&#160;  ┃
┃个左右；相比之下，ActionScript3处于顶级的核心类只有28个，全局函数仅21个，另加全局常量4个。&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  ┃
┃&#160;&#160;  那么为什么会发生这么大的变化呢？&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  ┃
┃&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  ┃&#160;&#160;&#160;&#160;  ┃&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  ┃&#160;&#160;&#160;&#160;  ┃&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=943</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3数组:Array-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=942</link>
		<comments>http://www.jvcj.cn/?p=942#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:56:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[as3数组:Array
2009年03月28日 星期六  11:09



12.1 数组(Array)的介绍
ActionScript3中的数组(Array)是以非零整数为索引的稀疏数组(sparse array).所谓稀疏就是指数组元素可以是不同数据类型,不支持类型化数组(typed array).
12.1.1 访问数组元素
数组索引从0开始
12.1.2 数组的长度
ActionScript3的数组是可变长度数组,可以使用数组的length属性访问数组长度
1.使用length属性可以返回数组长度
2.向length属性赋值,将改变数组的长度,超出当前元素的部分会使用undefined作填充
3.向超出数组length值的索引赋值时,数组会自动增加长度,中间部分会用undefined作填充
4.向length属性赋值时,如果低于当前length值,则减少的数组索引将被自动删除

12.2 数组(Array)的基本操作
增、删、查、改、排序
12.2.1 查找:indexOf、lastIndexOf
查找元素，找到就返回索引位置，如果找不到，返回-1
indexOf 从左到右
lastIndexOf 从右到左
indexOf/lastIndexOf(查找元素[,查找起始位置])
查找时使用的是 === 全等于条件，不作数据类型自动转换，所以 &#34;123&#34;与123是不同的

12.2.2 在数组首尾新增元素：push、unshift
push,在数组尾部增加元素
unshift，在数组头部增加元素
push/unshift[元素1[,元素2,...元素n]]:uint
返回值：添加元素后数组的长度

12.2.3 删除数组首尾元素:pop、shift
pop,删除数组最后一个元素
shift，删除数组第一个元素
这两个函数均无参数
返回值：所删除的元素

12.2.4 在数组当中插入或者删除元素：灵活多变的splice
数组.splice(删除起始索引[,删除数量,插入元素1,插入元素2,...插入元素n])
1.从指定索引开始，删除指定数量的元素，并在原位置上插入新元素
数组.splice(删除起始索引,删除数量,插入元素1,插入元素2,&#8230;插入元素n)
删除起始索引可以为负数，即从结尾倒数第负数个元素开始向后删除,-1则为倒数第一个元素
2.删除指定起始点后的指定数量元素
数组.splice(删除起始索引,删除数量)
3.删除指定起始点后的所有元素
数组.splice(删除起始索引)
4.在数组某索引位后，插入元素
数组.splice(删除起始索引,0,插入元素1,插入元素2,&#8230;插入元素n)
返回值：被删除的元素
注意：splice会改变所操作的数组对象，如果只是想得到数组一段内容，请使用slice

12.2.5 获取数组中的部分元素：slice
数组.slice([获取起始索引,获取终止索引]):Array
起始和终止索引都可以使用负数
返回值：
1.查找到元素组成的新数组，数组元素包含起点索引元素，但不包括终止索引元素（即前一个）
2.只有获取起始索引时，返回从起始索引处到结尾所有元素的数组
3.不提供参数时，将生成原数组的一个浅复制
注意：当起始索引大于终止索引时，函数会函数一个空值，负数索引时特别容易出错

12.2.6 将多个元素或数组拼合成新的数组：concat
数组.slice([元素1,元素2,...元素n]):Array
与push一样，是在数组尾部追加数据
不同的是
1.push影响原始数组，concat不影响原始数组，而是返回一个新结果的数组对象
2.当追加的对象是数组时，push会直接添加，而concat会按元素顺序逐个加入到新数组中
3.不提供参数时，将生成原数组的一个浅复制
返回值：结果数组
12.2.7 数组的浅复制与深复制
浅复制就是说只是复制引用，操作对应对象时还会影响引用的对象。
一般调用数组的slice或concat函数时，不传入参数，都可以生成浅复制对象
深复制不是生成复制对象的一个副本，所有对返回对象的操作，都不会影响到原始对象，是完全复制。
深复制使用ByteArray类
var BA对象:ByteArray = new ByteArray();
BA对象.writeObject(源对象);
BA对象.position = 0;
var 备份对象:Array = BA对象.readObject() as Array;

12.2.8 排序：reverse、sort、sortOn(均会影响源数组)
数组.reverse():Array
reverse将数组倒序排序
返回值：排序后的新数组

sort([排序方式&#124;比较函数]):Array
1.不提供参数时，将按默认的ascii排序规则排序
2.传入排序方式：排序方式其实就是Array类内置的一组常量
Array.CASEINSENSITIVE&#160;&#160;&#160;&#160;  值为1 ,大小写不敏感顺序排序，数字按从小到大
Array.DESCENDING&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  值为2 ,按字母倒序
Array.UNIQUESORT&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  值为4 ,必须唯一性排序，如果排序元素中有重复，结果将返回0(即放弃排序)
Array.RETURNINDEXEDARRAY 值为8 ,sort或sortOn函数排序后返回排序后的索引列表，保持原数组不变
Array.NUMERIC&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  值为16,强制sort和sortOn函数对数值采用从小到大排序，按数值排序时必须用此
排序方式可以用 &#124; 分隔开作为一组参数传入sort或sortOn，也可以将对应值相加直接传入
3.比较函数
function 函数名(参数A:类型, 参数B:类型):int{
}
排序时，会自动匹配所有两个参数进行比较，
当返回值为1时，参数A对应元素排到参数B对应元素后
当返回值为0时，参数A与参数B位置保持不变
当返回值为-1时，参数B对应元素排到参数A对应元素前

sortOn(&#34;name&#34;[,排序方式&#124;比较函数]):Array
sortOn用于对复杂型数据数组进行排序
[详细请看书p211，此节笔记无法清晰记录]

12.3 操作数组每个元素:forEach、every、filter、map、some




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=942</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3字符串：String-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=941</link>
		<comments>http://www.jvcj.cn/?p=941#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:55:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[as3字符串：String
2009年03月28日 星期六  11:10



13.2.1 运用charAt()和charCodeAt()&#160;&#160;&#160;  取字/取字Unicode码
字符对象.charAt(索引)
获取索引指定处的字符，索引从0开始
字符对象.charCodeAt(索引)
获取索引指定处的字符的Unicode整型值。
13.2.2 运用fromCharCode()&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  根据Unicode码返回字符
fromCharCode:根据传入的数值返回对应字符
这是String类的静态属性
String.fromCharCode(Unicode码[,Unicode码])
多个Unicode码可用逗号分隔
例如:
String.fromCharCode(27583,22530,20043,36335O); //返回 殿堂之路 四个字
String.fromCharCode(0&#215;41,0&#215;53,0&#215;33); //返回 AS3 ，这里用了16进制值

13.6 常用的字符串操作
13.6.1 indexOf()的使用及search()的区别&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  查找字符
字符对象.indexOf(查询对象[,搜索起始索引])
如果没找到结果，则返回-1
13.6.2 substring()、slice()和substr()的使用及区别&#160;&#160;&#160;  查找并获取字符
三者的共同点都是不会影响源操作字符串
字符对象.substring(起点位置[,终点位置])
字符对象.slice(起点位置[,终点位置])
字符对象.substr(起点位置,截取长度)
substring:
1.起始点和终点不能为负数，否则会被当成0处理。
2.如果起始点索引大于终点索引，执行时索引位置会互换。
3.如果只填写起始索引，则结束索引默认为最后一个字符
slice:
1.起点索引和终点索引均支持负数索引，当索引为负时，代表从右向左数
2.如果起始点大于终止点，则返回一个空字符
3.如果只填写起始索引，则结束索引默认为最后一个字符
substr:
参数支持正数和负数。

13.6.3 split()与正则表达式结合运用
字符对象.split(分隔符&#124;正则表达式)&#160;&#160;&#160;&#160;  拆分字符为数组
支持强大的正则表达式
13.6.4 使用XML对象实现输入不规则文本
var XML对象:XML = 
&#60;标签&#62;
&#60;![CDATA[
文本
]]&#62;
&#60;/标签&#62;
XML对象.toString();
//通过XML对象的toString方法就可以得到完整代码了
trace(XML对象.toString())

13.7 实用的mx.utils.StringUtil工具类
import mx.utils.StringUtil
StringUtil.trim(str:String):void 去除两端空白
StringUtil.substitute(str:String,&#8230;rest):String 替换字符串




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=941</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3XML数据处理-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=940</link>
		<comments>http://www.jvcj.cn/?p=940#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:54:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[as3XML数据处理
2009年03月28日 星期六  11:11



15.4 创建XML对象
15.4.1 使用构造函数创建XML对象
var String对象:String = 字符串
var XML对象:XML = new XML(String对象);
trace(XML对象.属性)
15.4.2 直接使用XML文本创建XML对象
var XML对象:XML = 
&#60;![CDATA[
直接输入XML文本 或换行
]]&#62;
或者使用变量的方式
var String对象:String = 字符;
var XML对象:XML = 
&#60;{String对象}&#62;
变量使用{}括起来，其它的与XML普通输入无异

15.5 使用运算符操作XML数据
15.5.1 使用&#34;.&#34;与&#34;@&#34; 直接访问、修改、创建和删除XML对象
访问:
var XML对象:XML = XML文本;
trace(XML对象.节点名.子节点名)
trace(XML对象.节点[索引])
trace(XML对象.节点.@属性)
trace(XML对象.节点.@属性[索引])
15.5.2 使用&#34;.&#34;与&#34;@&#34;直接修改XML对象
注意：如果存在多个同级元素时，不能直接使用.和@修改，因为返回结果是XMLList对象
XML对象.节点.子节点 = 值 //直接修改节点文本
XML对象.节点.@属性 = 值 //直接修改属性值

15.5.3 使用&#34;.&#34;与&#34;@&#34;直接添加删除子元素和属性
注意：如果存在多个同级元素时，不能直接使用.和@修改，因为返回结果是XMLList对象
XML对象.节点.新节点名 = new XML(); //添加一个空白节点
XML对象.节点.新节点名 = 字符串;&#160;&#160;  //添加一个字符串节点
XML对象.节点.@新属性名 = 值;&#160;&#160;  //添加一个节点属性
删除节点:
delete XML对象.节点.元素[@属性]
15.5.4 简单方便地搜索XML子元素和属性
trace(XML对象.节点..子节点) //显示所有同级子节点
trace(XML对象.节点.@*.toXMLString()); //显示所有同级节点中的所有属性值
trace(XML对象.节点.(子节点 &#60; [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=940</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3强大的正则表达式：RegExp-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=939</link>
		<comments>http://www.jvcj.cn/?p=939#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:53:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[as3强大的正则表达式：RegExp
2009年03月28日 星期六  11:10



14.2.2 正则表达式的两个构成部分
简写模式：
var 正则对象:RegExp = /匹配模式/标志位
构造函数模式：
var 正则对象:RegExp = new RegExp(匹配模式,标志位)
匹配模式就是正则表达式，标志位包括五个字母 gimsx
14.3 正则表达式语法
14.3.1 正则表达式中的文字符号
普通文字和符号：A-Z a-z 0-9 以及不是元字符的其它符号
输入Unicode字符时，同String一样，使用\uXXXX
元字符：三三二三个一(记忆口诀)
三个括号： {[(
三个匹配次数: *+? 星加问
两个断言: ^$ 定头定尾
三个一： &#124; 选择符 . 模糊匹配 \ 转义
三个括号：
{定义匹配次数
[字符集
(子模式
三个匹配次数:
* 匹配出现0次或多次
+ 匹配出现至少1次或多次
? 匹配出现0次最多1次
两个断言：
^ 在/后出现时为左端断言， /^
$ 在/前出现时为右端断言， $/
三个独立元字符：
&#124; 选择符，匹配时兼容匹配选择符两边的字符
. 模糊匹配，可以代替
不可见字符：比较一些转义的控制字符
14.3.2 正则表达式中的字符集
1.字符集的概念和最简单的字符集形式
[字符集]
字符集用中括号括起来
Unicode字符请使用\uXXXX 四位十六进制Unicode代码输入
如：/g[eo]t,分别匹配get和got,但不会匹配geot，因为字符集只能匹配一个字符
2.连字符在字符集中的运用
[字符-字符]
如:[a-z][A-Z]，就是匹配英文字母字符集了

3.取反符号在字符集中的运用
[^字符集]
添加取反符号后，匹配时将忽略字符集中的所有元素
4.字符集中需要转义的特殊字符
\转义符号
常见要转义的字符有三类：
1.字符串: 双引号&#34; 单引号 &#8216; 反斜杠 \
2.正则表达式的源字符
3.字符集中的: [\^-
尽可能将会产生歧义的字符转义

14.3.3 特殊的点号(.)
.号可以替代任意单个字符，作为正则表达式中的模糊匹配字符
1.点号不匹配新行符(\n)
多行字符的模糊匹配中，.号不能匹配\n换行符，要匹配换行符，必须在标志位中使用s
2.尽量少使用点号&#8220;.&#8221;
只在明确不会模糊匹配时出错的情况下才用.模糊匹配,点号匹配所有的Unicode字符。

14.3.4 选择符
&#124; 对选择符两边的元素作任意匹配。
使用&#124;选择符时，尽可能使用括号将两边的操作数括起来，以方便区别。
14.3.5 括号与分组
() 圆括号将表达式的一部分括起来，就会将这部分定交成组，一旦命名了组，就可以通过&#8220;向后引用&#8221;来调用它。
它所括起的部分一般用于：
1.和选择符搭配，规定作用于选择符的范围，如/he(got&#124;get)it/
2.和限定符搭配使用，指定匹配的重复次数，如/(get)*/

14.3.6 用正则表达式描述字符串的重复
使用{}定义匹配的重复次数，跟在要重复的表达式或字符后面
{最小出现次数[,最多出现次数]}
还有常用的三个 非显式限定符
*+? 星加问
* 出现0次或多次&#160;&#160;&#160; [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=939</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ActionScript3目前主要的API概览-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=938</link>
		<comments>http://www.jvcj.cn/?p=938#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:52:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[ActionScript3目前主要的API概览
2009年03月28日 星期六  11:11


Flash CS3提供的API包含17个包,以fl开头,分为四大类:
Flash CS3组件
动画效果
Motion XML 
视频



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=938</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3事件发送和处理-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=937</link>
		<comments>http://www.jvcj.cn/?p=937#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:51:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[as3事件发送和处理
2009年03月28日 星期六  11:12



18.1 事件(Event)处理机制的产生和原理
为了减低数据交互相方的&#8220;耦合性&#8221;，ActionScript3给出了一个很好的解决方案&#8212;&#8212;DOM3事件处理机制。
&#160;&#160;&#160;  DOM3事件模型定义了一套标准的生成和处理事件消息的方法，使程序中的对象可以相互交互、通信，保持自身状态和响应变化。通俗地说，数据的提供者只管发出数据对象，只要确保数据对象是flash.events.Event类（或子类）的实例即可。这种数据对象，称为事件（Event）。
数据对象的发出者，称为事件发送者（Event dispatcher）;
接受事件的对象，称为事件侦听者（Event listener）。
&#160;&#160;&#160;  DOM3事件的优点在于，事件发送者和事件接收者的依赖性大大降低。事件发送者只需要发送事件对象，事件侦听者只需要接受事件对象。事件接收者可以改变自己的外部接口，只需要确保发送的事件对象不变即可。事件侦听者也不必关心事件接收者是否变化，只需要保证自己能够正确处理接收到的事件对象即可。

18.1.1 示意图：点菜的例子
当客人进入一家饭店时，就等于告诉这家饭店的服务生，一会儿我们要点菜，你要过来服务。当点菜时，我们只要报上要点的菜，服务生自然会记下我们的要求，并吩咐厨房。
客人就是事件发送者(Event Dispatcher)
点菜就是客人发送的事件(Event)
服务生就是事件侦听者(Event Listener)
而这个事件中，包含有3条主要内容：事件的类型、事件的目标、事件的相关数据。
事件类型(Type)：点菜，服务生根据事件的不同，作出相应的操作，如果客人要求埋单，那么服务生就到柜台取帐单。
事件目标(Target)：事件发送者，如果服务生下单后就不记得是谁点的菜，就糟糕了。
事件数据(Data)：事件所包含的其它信息，比如点菜就是菜的名字，而埋单，则是没具体信息，只是让服务生到柜台取帐单。

18.1.2 DOM3事件的执行流程
DOM3事件机制包含4个步骤：
注册侦听器、发送事件、侦听事件、移除侦听器，按顺序执行的。
注册侦听器(Add Event Listener)：指定发出的事件由哪个对象接受处理，比如进入饭店时，就是注册服务员为自己点菜事件的侦听器，如果你在大街上直接发出点菜事件（大喊点菜），是没人理你的（响应事件），客人就是服务生的侦听对象。
只有在注册侦听器后，发送的事件才能被侦听器接收到，而且发送的事件类型必须与侦听器匹配，比如你叫在饭店中叫看电影，服务生就不清楚怎样响应你了。
发送事件后，侦听器才会处理事件，不可能你没叫点菜之前，服务生就已经帮你到厨房下单了。
事件处理完成后，要移除侦听器，不可能服务生在你有之前光顾的饭店的服务生都响应你的事件，去厨房点菜，这样就不行了。

18.1.3 第一个事件处理代码例子
详阅p294
自己理解总结:
事件处理主要三个主体对象
1.事件发送者
2.事件类对象
3.事件侦听者
事件发送者:要完成事件类对象的创建及初始化,发送事件方法(dispatchEvent 派发事件)
事件类对象:声明好事件名常量,及事件数据存储变量,创建时调用父类构造函数
事件侦听者:要创建响应事件处理的函数,供addEventListener调用
文档类:
构造事件发送对象
构造事件侦听对象
事件发送对象.addEventListener(事件名常量,侦听者处理函数)
事件发送对象.事件发送方法() //派发事件
事件发送对象.removeEventListener(事件名常量,侦听者处理函数)

18.2 ActionScript 3事件机制的新特色
18.2.1 回顾ActionScript 1 和 ActionScript 2中的事件机制
AS1中用户最需要用 onClipEvent() on(),既方便又直接,但缺点是逻辑分散到各个舞台元件和时间轴上,管理不便.
AS2开始,增加了一些事件处理机制:
回调函数:onLoad onComplete等,如常见的XML.onload事件
事件侦听器:addListener() addEventListener
AS2.0的不足:
AS2中核心类和Flash API没有内置事件,只有组件类(mx.*)才有内置事件,除了UIComponent能发送事件,其它类都不能发送事件.
AS2中，侦听器的this关键字指向混乱，常常弄错。侦听器可以用对象object也可以用函数function。
AS2中，侦听器注册方式也有两种，一种是addListener()，如Key；一种是addEventListener()，如UIComponent类。

18.2.2 ActionScript3 事件处理机制形式上的不同
注册侦听形式统一，使用事件侦听统一使用addEventListener()
侦听器统一使用function，不再允许Object当侦听器
所发送的事件对象，必须是Event或其子类的实例




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=937</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3网络通信基础-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=936</link>
		<comments>http://www.jvcj.cn/?p=936#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:50:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[as3网络通信基础
2009年03月28日 星期六  11:13



19.1 ActionScript3网络通信的流程
1.构建通信请求对象(URLRequest)
2.使用通信请求对象，构建URLLoader对象，并发出数据请求
3.数据收到之后，发出完成事件，调用&#8220;读取完成&#8220;事件的侦听器处理返回的数据

标准的加载方法：
var URL路径:String = &#34;URL地址&#34;;
var URLRequest对象:URLRequest = new URLRequest(URL路径);
var URLLoader对象:URLLoader = new URLLoader(URLRequest对象);
提交的数据放在URLRequest对象中，读取到的数据放在URLLoader对象中。
对于URL中的值对操作，要使用URLVariables类处理。
var 值串对象:URLVariables = new URLVariables(&#34;name=foo&#38;age=28&#38;sex=male&#34;);
var URLRequest对象:URLRequest = new URLRequest();
URLRequest对象.url = &#34;动态网页URL&#34;;
URLRequest对象.method = URLRequestMethod.GET; //数据格式
URLRequest对象.data = 值串对象; //将URLVariables赋给data属性

XML数据：
var XML对象:XML = XML文本
var URLRequest对象:URLRequest = new URLRequest();
URLRequest对象.url = &#34;动态网页URL&#34;;
URLRequest对象.contentType = &#34;text/xml&#34;;
URLRequest对象.data = XML对象.toXMLString(); //将xml转成文本赋给data属性
URLRequest对象.method = URLRequestMethod.POST;

19.1.2 发出数据请求
发出数据请求，需要按照数据请求对象携带的信息，向指定地址发出请求，这部分由URLLoader对象来完成。
var URLLoader对象:URLLoader = new URLLoader(URLRequest对象); //定义后立刻发送数据
var URLLoader对象:URLLoader [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=936</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ActionScript 3 视觉编程精要-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=935</link>
		<comments>http://www.jvcj.cn/?p=935#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:49:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[ActionScript 3 视觉编程精要
2009年03月28日 星期六  11:13



20.1 什么是显示对象
在舞台上显示的对象，在AS3中统一被称为显示对象(Display Object)
显示对象除了包含能看得见的显示对象外,也包括不能看见但却真实存在的显示对象容器(Display Object Container)

20.1.1 ActionScript3 中显示对象等级结构
舞台(Stage)
当前SWF(文档类或MainTimeline)
容器
显示对象

20.1.2 显示列表:显示对象模型
AS3中所有显示对象均使用显示列表(Display List)的方式进行管理,只有在列表中列出的对象才会在舞台上显示。
显示对象有两种：在显示列表中(on-list)和不在显示列表中(off-list)，在显示列表中的对象会被渲染，不在显示列表中的对象依然存在，不被渲染罢了。

20.2 ActionScript3中显示对象的种类
20.1 ActionScript2中的MovieClip
MovieClip是万能的，但缺点是一旦创建，就拥有了一大堆时间轴等属性，非常浪费资源，有时候只将它作为空白容器。
MovieClip的地位在AS3中减弱了很多。

20.2.2 ActionScript3显示对象种类划分：一个统一、两个层次
一个统一，AS3中所有显示对象都统一于DisplayObject类
第一大层次：是否可以接受互动事件,可以接受的,称为 可互动的显示对象(InteractiveObject);
不可以交互的,称为非互动显示对象.
可互动的显示对象(InteractiveObject):指能够接受鼠标单击、键盘敲击等人机交互事件。
位图、形状、视频等就不能接受这些事件，所以归入不可以交互类。
第二大层次：是否可以作为容器，可以容纳其它显示对象的，称为 显示对象容器(Display Object Container)

20.3 显示对象类库架构
以下很好反映了  一个统一、两个层次  这个概念
所有显示对象都是继承自父类DisplayObject这个抽象类，而父类DisplayObject则继承自EventDispatcher类，
说明所有显示对象都能发送事件。
DisplayObject、InteractiveObject、DisplayObjectContainer是显示对象架构中的三个核心对象，
它们都是不能被实例化的抽象类

视觉架构类图:
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  EventDispatcher(事件类)
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  ┃ 
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  ┃ 
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  根类 DisplayObject(抽象类,不允许实例化,只能实例化子类)
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  ┃ 
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  ┃ 
&#160;&#160;&#160;&#160;&#160;&#160;&#160;  InteractiveObject(可以交互)━━━━━━&#160;&#160;  (不可以交互)&#160;&#160;  ┏　Bitmap(位图) &#8211; Shape(容器)
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  ┃&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;  ┣　Video(视频) [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=935</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash CS3：库元件的类绑定与-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=934</link>
		<comments>http://www.jvcj.cn/?p=934#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:48:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Flash CS3：库元件的类绑定与
2009年03月28日 星期六  11:15



23.1 类绑定的好处、原理和第一个例子
类绑定使元件由原来只可以使用attachMovie、createEmptyMovieClip等创建实例的途径，变成可以直接使用new 类名()的类。
23.1.1 第一个类绑定的例子：自定义标签按钮




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=934</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>DisplayObject类与矢量图、位图-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=933</link>
		<comments>http://www.jvcj.cn/?p=933#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:47:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[DisplayObject类与矢量图、位图
2009年03月28日 星期六  11:14



21.1.1 显示对象的可视属性列表
AS3中所有原有对象的属性前面的下划线都去掉了，直接使用字母 ，比如 _x _y _alpha 之类变成x y alpha
注意的是：
scaleX scaleY alpha 之类原来0-100的值，在AS3中变成了0-1，其中的百分比使用小数
显示对象基本有11个可视属性(共有25个)：
x、y、width、height、scaleX、scaleY、mouseX、mouseY、rotation、alpha、visible
21.1.2 显示对象的其它属性
显示对象除了11个可视属性外，还有5个常用属性和9个不太常用的属性。
除此之外，DisplayObject还拥有6个实例方法，能发出6种事件。
5个常用属性：
name:&#160;&#160;  显示对象名字，与AS2不同的是，创建对象时，name会自动分配
parent: 父容器，指向显示列表的父容器，当显示对象不在显示列表中时，该属性为null
root:&#160;&#160;  返回当前SWF主类的实例引用。
stage:  舞台
mask:&#160;&#160;  遮罩，指向用来遮罩的对象。

21.2 所有显示对象的抽象父类：DisplayObject类
DisplayObject类是一个不能被实例化的抽象类，也不能创建直接继承DisplayObject的子类，而只能继承自DisplayObject具体子类
DisplayObject类具有7个子类，分成两类，一类是InteractiveObject抽象类，
另一类是非InteractiveObject类的六个具体类，这六个类都是直接继承自DisplayObject类，不是InteractiveObject的子类，
因此不能接受鼠标事件，也不会发出人机交互事件。
21.3 矢量图
Shape类是最简单的DisplayObject类型，与父类不同的是它多了一个graphics的实例属性，这个属性持有Graphics类对象的引用。
21.3.1 Graphics对象
Graphics对象只能由AS3内建的显示对象创建并调用，所有的矢量图形代码绘制均使用它创建。
Graphics对象并不是显示对象类，而是直接继承自根类Object。也没法用代码创建Graphics对象。
Graphics对象绘制方法分类(详细见P341 或帮助 flash.display &#62; Graphics 相关方法 属性)
使用代码绘图时，一般遵从顺序：设置线头样式、填色、移动绘画点、画线或绘制图形、结束填色(endFill())。
设置线头样式、填色都是可选的。
只要含有Graphics的显示对象都可以绘制矢量图。
AS3中拥有Graphics对象的DisplayObject子类有3个：Shape、Sprite、MovieClip,Shape只支持纯矢量图，Sprite可以容纳矢量图与其它对象。

21.3.2 绘制矢量图的例子
var 显示对象:Shape = new Shape();
显示对象.graphics.beginFill(0xff0000);
显示对象.graphics.drawCircle(100,100,40);
显示对象.graphics.endFill();
addChild(显示对象);

21.4 位图
21.4.2 Bitmap和BitmapData
位图的所有像素信息存储在Bitmap对象的BitmapData属性持有的BitmapData对象中，
Bitmap对象不是显示对象，它直接继承自Object
BitmapData对象可以看成是一个特殊数组(二维数组)，其中存储的每个一个颜色值，是一个32位的ARGB值
A,alpha透明度， 值从0&#215;00-0xFF ， ARGB组合的值就是  0xFF00000  共8位16进制值。
BitmapData对象记录的像素ARGB值是直接提交Flash Player渲染的，所以直接改变BitmapData中的像素信息，就可以改变舞台上的位图对象。
21.4.3 使用BitmapData 创建和改变位图
import flash.display.BitmapData;
import flash.display.Bitmap;

21.5 遮罩
21.5.1 定义普通遮罩
设置显示对象的mask属性，即可定义遮罩。
显示对象.mask [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=933</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>容器：DisplayObjectContainer与Sprite、MovieClip-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=932</link>
		<comments>http://www.jvcj.cn/?p=932#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:46:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[容器：DisplayObjectContainer与Sprite、MovieClip
2009年03月28日 星期六  11:14



显示对象容器(DisplayObjectContainer)是显示对象的子类，可以在其内放置显示对象，当然也包括容器。
22.1 容器的概念和实现
容器有属于自己的子对象列表，既包括非容器显示对象也可以包括子容器对象。
在AS3中有6个重要的容器，包括DisplayObjectContainer的4个子类：Sprite、MovieClip、Loader和Stage
也包括Flex组件架构中的mx.core.UIComponent 、 mx.flash.UIMovie

22.1.1 DisplayObjectContainer类
与DisplayObject一样，不能实例化，也不能直接子类继承，它只作为一种数据类型，要使用，则要使用到它具体的容器子对象。
DisplayObjectContainer类具有4个属性和13个实例方法：
子显示对象数目属性: numberChildren:int
添加、删除子对象的方法：  添加: addChild方法、addChildAt方法  删除: removeChild方法、removeChildAt方法
访问子对象的方法：&#160;&#160;&#160;&#160;&#160;&#160;&#160;  getChildAt 方法 、 getChildByName方法、getChildIndex方法、 getObjectsUnderPoint方法
检测子对象的方法：&#160;&#160;&#160;&#160;&#160;&#160;&#160;  contains方法 、 areInaccessibleObjectsUnderPoint方法
设置叠放次序的方法：&#160;&#160;&#160;&#160;&#160;  setChildIndex方法、 swapChildren方法、 swapChildrenAt方法
剩下三个属性： mouseChildren tabChildren textSnapshot
22.1.2 最轻量的容器：Sprite类
22.2 添加、删除视觉元件
在AS3中，创建对象和渲染对象是分开处理的，建立对象，一般只需要 new关键字加类构造函数即可。
渲染显示对象，则必须要将其加入到显示列表中，当加入的容器不在显示列表中的时候，加入的子对象也不显示。
添加、删除子对象的方法：  添加: addChild方法、addChildAt方法  删除: removeChild方法、removeChildAt方法

22.2.1 Flash程序中所有显示对象的添加流程
Flash运行过程
先创建一个Stage容器对象，当第一个SWF载入后，会自动成为Stage容器的一个子显示对象。

22.2.2 addChild方法、removeChild方法和contains方法
addChild方法：添加显示对象到列表
removeChild方法：移除显示对象
contains方法：&#160;&#160;  用于检测一个容器中是否包含指定显示对象
容器对象.addChild(显示对象);
容器对象.removeChild(显示对象);
addChild和removeChild都有返回值，返回作为目标参数的显示对象，当参数错误时，会抛出ArgumentError异常。
容器对象.contains(显示对象)
contains如果检测到传入的显示对象，则返回true，否则返回false，contains方法不仅检测当前容器所包含的子容器和子显示对象，
还检查子容器的子容器和显示对象。。。。一直到末端。最彻底的检测方法。

22.2.3 重要：添删显示对象的注意点
显示对象的状态独立于显示列表,即使从显示列表中删除显示对象，但显示对象的状态还是保持的。
显示对象的坐标座标属性相对于父容器注册点为准 。
同一个显示对象多次添加到不同容器时，只允许最后一个添加的容器拥有对象。
(同一个显示对象无论被代码加入显示列表多少次,在屏蔽上只会有一个显示对象.)

22.3 深度管理
深度由每个容器的子对象列表所管理。容器的numChildren属性显示该容器内所拥有的子显示对象数量。
子显示对象的深度同显示列表索引挂钩，从0到numChildren这个范围，连续无间断深度。
当更新显示对象深度时，子对象列表会自动更新该对象插入位后的索引。
22.3.1 深度的产生顺序和一个注重点
graphics对象不是Shape显示对象，也不在Sprite对象的子对象列表中，始终处于Sprite对象所有子对象的下面。
22.3.2 addChildAt和removeChildAt
指定添加显示对象的深度，可以用addChildAt，删除亦然。
容器对象.addChildAt(显示对象,深度);
容器对象.removeChildAt(深度);
两方法均返回显示添加和被删除的显示对象。
如果传入对象不合理，同样会触发ArgumentError异常对象。
22.3.3 交换不同深度的对象：swapChildren和swapChildrenAt
容器对象.swapChildren(显示对象A,显示对象B);
容器对象.swapChildrenAt(深度A,深度B);
两方法均不返回值。

22.3.4 重设列表中已有对象的深度：setChildIndex
容器对象.setChildIndex(显示对象,指定深度)
显示对象如果不在对象列表中，会抛出ArgumentError异常，如果指定深度超出合理范围，会抛出RangeError异常
常用方法：
置顶:
容器对象.setChildIndex(显示对象A,容器对象.numChildren-1)
置底:
容器对象.setChildIndex(显示对象A,0)
插入到显示对象B前:
容器对象.setChildIndex(显示对象A,容器对象.getChildIndex(显示对象B))
插入到显示对象B后:
容器对象.setChildIndex(显示对象A,容器对象.getChildIndex(显示对象B)-1)
使用setChildIndex后，显示对象列表会自动更新索引，不用我们操心。

22.4 访问和遍历容器子显示对象
在AS2.0中可以使用.点语法来访问对象,主要是因为MovieClip是动态类,可以动态添加子引用.
在AS3.0中， Sprite是最重要的容器，不是动态类，是密封类，因此不能使用点语法来访问。
Flash CS3创建环境下创建的MC可以用点语法访问，但在as中创建的MovieClip则不能使用点语法访问。
访问容器的子显示对象，有三种方法：通过深度访问、通过名字访问、通过全局座标访问。
22.4.2 [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=932</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>斜杠语法-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=931</link>
		<comments>http://www.jvcj.cn/?p=931#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:45:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[斜杠语法
2009年03月31日 星期二  12:09


ActionScript 3.0 不支持斜杠语法。在早期的 ActionScript 版本中，斜杠语法用于指示影片剪辑或变量的路径。



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=931</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于 ActionScript-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=930</link>
		<comments>http://www.jvcj.cn/?p=930#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:44:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[关于 ActionScript
2009年03月28日 星期六  17:06



ActionScript 是针对 Adobe Flash Player 运行时环境的编程语言，它在 Flash 内容和应用程序中实现了交互性、数据处理以及其它许多功能。
ActionScript 是由 Flash Player 中的 ActionScript 虚拟机 (AVM) 来执行的。ActionScript
代码通常被编译器编译成&#8220;字节码格式&#8221;（一种由计算机编写且能够为计算机所理解的编程
语言） ，如 Adobe Flash CS3 Professional 或 Adobe Flex Builder 的内置编译器或
Adobe Flex SDK 和 Flex Data Services 中提供的编译器。字节码嵌入 SWF 文件中，
SWF 文件由运行时环境 Flash Player 执行。
ActionScript 3.0 提供了可靠的编程模型，具备面向对象编程的基本知识的开发人员对此模
型会感到似曾相识。ActionScript 3.0 中的一些主要功能包括：
&#160;&#160;&#160;  一个新增的 ActionScript 虚拟机，称为 AVM2，它使用全新的字节码指令集，可使性能
显著提高
&#160;&#160;&#160;  一个更为先进的编译器代码库，它更为严格地遵循 ECMAScript [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=930</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ActionScript 3.0 的优点-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=929</link>
		<comments>http://www.jvcj.cn/?p=929#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:43:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[ActionScript 3.0 的优点
2009年03月28日 星期六  17:07


&#160;&#160;  ActionScript 3.0 的脚本编写功能超越了 ActionScript 的早期版本。它旨在方便创建拥有大型数据集和面向对象的可重用代码库的高度复杂应用程序。虽然 ActionScript 3.0 对于在
Adobe Flash Player 9 中运行的内容并不是必需的，但它使用新型的虚拟机 AVM2 实现了性能的改善。ActionScript 3.0 代码的执行速度可以比旧式 ActionScript 代码快 10 倍。
&#160;&#160;&#160;  旧版本的 ActionScript 虚拟机 AVM1 执行 ActionScript 1.0 和 ActionScript 2.0 代码。为了向后兼容现有内容和旧内容， Flash Player 9 支持 AVM1.



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=929</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ActionScript 3.0 中的新增功能-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=928</link>
		<comments>http://www.jvcj.cn/?p=928#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:42:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[ActionScript 3.0 中的新增功能
2009年03月28日 星期六  17:08



&#160;&#160;&#160;  虽然 ActionScript 3.0 包含 ActionScript 编程人员所熟悉的许多类和功能，但
ActionScript 3.0 在架构和概念上是区别于早期的 ActionScript 版本的。ActionScript 3.0
中的改进部分包括新增的核心语言功能，以及能够更好地控制低级对象的改进 Flash Player
API。
核心语言功能
核心语言定义编程语言的基本构造块，例如语句、表达式、条件、循环和类型。
ActionScript 3.0 包含许多加速开发过程的新功能。
运行时异常
ActionScript 3.0 报告的错误情形比早期的 ActionScript 版本多。运行时异常用于常见的
错误情形，可改善调试体验并使您能够开发可以可靠地处理错误的应用程序。运行时错误可
提供带有源文件和行号信息注释的堆栈跟踪，以帮助您快速定位错误。
运行时类型
在 ActionScript 2.0 中，类型注释主要是为开发人员提供帮助；在运行时，所有值的类型都
是动态指定的。在 ActionScript 3.0 中，类型信息在运行时保留，并可用于多种目的。Flash
Player 9 执行运行时类型检查，增强了系统的类型安全性。类型信息还可用于以本机形式表
示变量，从而提高了性能并减少了内存使用量。
密封类
ActionScript 3.0 引入了密封类的概念。密封类只能拥有在编译时定义的固定的一组属性和
方法；不能添加其它属性和方法。这使得编译时的检查更为严格，从而导致程序更可靠。由
于不要求每个对象实例都有一个内部哈希表，因此还提高了内存的使用率。还可以通过使用
dynamic 关键字来实现动态类。默认情况下，ActionScript 3.0 中的所有类都是密封的，但
可以使用 dynamic 关键字将其声明为动态类。
闭包方法
ActionScript 3.0 使闭包方法可以自动记起它的原始对象实例。此功能对于事件处理非常有
用。在 ActionScript 2.0 中，闭包方法无法记起它是从哪个对象实例提取的，所以在调用闭
包方法时将导致意外的行为。mx.utils.Delegate 类是一种常用的解决方法，但已不再需要。
ECMAScript for XML (E4X)ActionScript 3.0 实现了 ECMAScript for XML [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=928</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3编程的概念-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=927</link>
		<comments>http://www.jvcj.cn/?p=927#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:41:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[as3编程的概念
2009年03月28日 星期六  17:08


&#160;&#160;&#160;  ActionScript是一种编程语言，在学习编程语言之前，我们应该对编程的概念有一定的了解和认知，这样才能对我们的编程学习起到一定的帮助作用。
&#160;&#160;&#160;  首先我们来了解一下计算机的用途，计算机的程序主要包括2个方面，一个是程序是计算机执行一系列指令或步骤。另一个是每一个步骤最终到涉及到对某一段信息或数据的处理。
&#160;&#160;&#160;  我们通常认为，计算机程序只是您提供计算机并让他逐步执行的指令列表。每个单独的指令我们又称为&#8220;语句&#8221;。
&#160;&#160;&#160;  实质上，程序中给定指令所做的全部操作就是处理存储在计算机内存中的一些数据位。举一
个简单的例子，您可能指示计算机将两个数字相加并将结果存储在计算机的内存中。举一个
较复杂的例子：假设在屏幕上绘制了一个矩形，您希望编写一个程序将它移动到屏幕上的其
它位置。计算机跟踪该矩形的某些信息 &#8212; 该矩形所在位置的 x、y 光标、它的宽度和高度以
及颜色等等。这些信息位中的每一位都存储在计算机内存中的某个位置。为了将矩形移动到
其它位置，程序将采取类似于&#8220;将 x 坐标改为 200 ；将 y 坐标改为 150&#8221;的步骤（也就是
说，为 x 和 y 坐标指定新值）。当然，计算机的确会对这些数据进行某些处理，以便切实地
将这些数字转变为显示在计算机屏幕上的图像；但考虑到我们所感兴趣的详细程度，我们只
要知道&#8220;在屏幕上移动矩形&#8221;这一过程确实只涉及更改计算机内存中的数据位就足够了。



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=927</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3变量与常量-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=926</link>
		<comments>http://www.jvcj.cn/?p=926#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:40:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[as3变量与常量
2009年03月28日 星期六  17:09



&#160;&#160;&#160;  首先我们应该知道变量是编程中最为普遍的概念。我把变量比作一个存放数据的盒子，这个盒子有他的名称，即变量名，那么在程序运行的时候，这个盒子的内容是可以发生改变的，我们将改变的值称作变量值。这样我们就很好理解变量是什么东西，以及在日后的应用中，我们可以对他的概念进一步的理解即应用。那么我们如何创建变量呢？
&#160;&#160;&#160;  在AS3.0中创建变量有着严格的方法，我们必须使用关键字var来创建变量，下面我们来举一个实例。
var bianliang:Number = 10;
&#160;&#160;&#160;  接下来我们说说常量，常量在程序中就是数值始终不变的数值。那么常量到底有什么好处呢？在一个复杂的程序中，如果我们要处理一个数据始终不变的数值，我们就可以运用常量，这样当我们要同一更改这个数值的时候，我们可以一次更改这个常量的赋值，这极大的方便了程序的维护。




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=926</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3数据类型-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=925</link>
		<comments>http://www.jvcj.cn/?p=925#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:39:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[as3数据类型
2009年03月28日 星期六  17:09



&#160;&#160;&#160;  在 ActionScript 中，我们创建的变量也是有他的类型的，本接我们来一一学习一下变量到底有那些数据类型。
&#160;&#160;&#160;  String：一个文本值，例如，一个名称或书中某一章的文字。实例如下：
var bianliang:String = &#34;你好！&#34;;
&#160;&#160;&#160;  Numeric：对于 numeric 型数据， ActionScript 3.0 包含三种特定的数据类型：
&#160;&#160;&#160;  Number：任何数值，包括有小数部分或没有小数部分的值
&#160;&#160;&#160;  Int：一个整数（不带小数部分的整数）
&#160;&#160;&#160;  Uint：一个&#8220;无符号&#8221;整数，即不能为负数的整数
实例如下：
var bianliang:Number = 10;
&#160;&#160;&#160;  Boolean：一个 true 或 false 值，例如开关是否开启或两个值是否相等，实例如下：
var bianliang:Boolean = true;
&#160;&#160;&#160;  简单数据类型表示单条信息：例如，单个数字或单个文本序列。然而，ActionScript 中定义的大部分数据类型都可以被描述为复杂数据类型，因为它们表示组合在一起的一组值。例
如，数据类型为 Date 的变量表示单个值 &#8212; 时间中的某个片刻。然而，该日期值实际上表示
为几个值：年、月、日、时、分、秒等等，它们都是单独的数字。所以，虽然我们认为日期
是单个值（可以通过创建一个 Date 变量将日期作为单个值来对待），而在计算机内部却认
为日期是组合在一起、共同定义单个日期的一组值。
&#160;&#160;&#160;  大部分内置数据类型以及程序员定义的数据类型都是复杂数据类型。您可能认识下面的一些
复杂数据类型：
&#160;&#160;&#160;  MovieClip：影片剪辑元件
&#160;&#160;&#160;  TextField：动态文本字段或输入文本字段
&#160;&#160;&#160;  SimpleButton：按钮元件
&#160;&#160;&#160; [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=925</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3基本概念-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=924</link>
		<comments>http://www.jvcj.cn/?p=924#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:38:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[as3基本概念
2009年03月28日 星期六  17:10


&#160;&#160;&#160;  ActionScript 是一种面向对象的编程语言。面向对象的编程仅仅是一种编程方法，它与使用对象来组织程序中的代码的方法没有什么差别。
&#160;&#160;&#160;  先前我们将计算机程序定义为计算机执行的一系列步骤或指令。那么从概念上讲，我们可能
认为计算机程序只是一个很长的指令列表。然而，在面向对象的编程中，程序指令被划分到
不同的对象中 &#8212; 代码构成功能块，因此相关类型的功能或相关的信息被组合到一个容器中。
事实上，如果您已经在 Flash 中处理过元件，那么您应已习惯于处理对象了。假设您已定义
了一个影片剪辑元件（假设它是一幅矩形的图画），并且已将它的一个副本放在了舞台上。
从严格意义上来说，该影片剪辑元件也是 ActionScript 中的一个对象，即 MovieClip 类的
一个实例。
您可以修改该影片剪辑的不同特征。例如，当选中该影片剪辑时，您可以在&#8220;属性&#8221;检查器
中更改许多值，例如，它的 x 坐标、宽度，进行各种颜色调整（例如，更改它的 alpha 值，
即透明度），或对它应用投影滤镜。还可以使用其它 Flash 工具进行更多更改，例如，使用
&#8220;任意变形&#8221;工具旋转该矩形。在 Flash 创作环境中修改一个影片剪辑元件时所做的更改，
同样可在 ActionScript 中通过更改组合在一起、构成称为 MovieClip 对象的单个包的各数
据片断来实现。
&#160;&#160;&#160;  在 ActionScript 面向对象的编程中，任何类都可以包含三种类型的特性：
&#160;&#160;&#160;  属性
&#160;&#160;&#160;  方法
&#160;&#160;&#160;  事件
这些元素共同用于管理程序使用的数据块，并用于确定执行哪些动作以及动作的执行顺序。



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=924</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3属性-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=923</link>
		<comments>http://www.jvcj.cn/?p=923#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:37:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[as3属性
2009年03月28日 星期六  17:10


&#160;&#160;  属性表示某个对象中绑定在一起的若干数据块中的一个。Song 对象可能具有名为 artist
和 title 的属性；MovieClip 类具有 rotation、x、width 和 alpha 等属性。您可以像处
理单个变量那样处理属性；事实上，可以将属性视为包含在对象中的&#8220;子&#8221;变量。
以下是一些使用属性的 ActionScript 代码的示例。以下代码行将名为 square 的 MovieClip
移动到 100 个像素的 x 坐标处：
square.x = 100;
以下代码使用 rotation 属性旋转 square MovieClip 以便与 triangle MovieClip 的旋转
相匹配：
square.rotation = triangle.rotation;
以下代码更改 square MovieClip 的水平缩放比例，以使其宽度为原始宽度的 1.5 倍：
square.scaleX = 1.5;
&#160;&#160;&#160;  请注意上面几个示例的通用结构：将变量（square 和 triangle）用作对象的名称，后跟一
个句点 (.) 和属性名（x、rotation 和 scaleX）。句点称为&#8220;点运算符&#8221;，用于指示您要访
问对象的某个子元素。整个结构&#8220;变量名- 点- 属性名&#8221;的使用类似于单个变量，变量是计
算机内存中的单个值的名称。



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=923</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3方法-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=922</link>
		<comments>http://www.jvcj.cn/?p=922#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:36:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[as3方法
2009年03月28日 星期六  17:11



&#160;&#160;  &#8220;方法&#8221;是指可以由对象执行的操作。例如，如果在 Flash 中使用时间轴上的几个关键帧和动画制作了一个影片剪辑元件，则可以播放或停止该影片剪辑，或者指示它将播放头移到特
定的帧。下面的代码指示名为 shortFilm 的 MovieClip 开始播放：
shortFilm.play();
&#160;&#160;&#160;  下面的代码行使名为 shortFilm 的 MovieClip 停止播放（播放头停在原地，就像暂停播放
视频一样）：
shortFilm.stop();
&#160;&#160;&#160;  下面的代码使名为 shortFilm 的 MovieClip 将其播放头移到第 1 帧，然后停止播放（就像后退视频一样）：
shortFilm.gotoAndStop(1);
&#160;&#160;&#160;  正如您所看到的一样，您可以通过依次写下对象名（变量）、句点、方法名和小括号来访问
方法，这与属性类似。小括号是指示要&#8220;调用&#8221;某个方法（即指示对象执行该动作）的方式。有时，为了传递执行动作所需的额外信息，将值（或变量）放入小括号中。这些值称为方法&#8220;参数&#8221;。例如，gotoAndStop() 方法需要知道应转到哪一帧，所以要求小括号中有一个参数。有些方法（如 play() 和 stop()）自身的意义已非常明确，因此不需要额外信息。但书写时仍然带有小括号。与属性（和变量）不同的是，方法不能用作值占位符。然而，一些方法可以执行计算并返回可以像变量一样使用的结果。例如，Number 类的 toString() 方法将数值转换为文本表示
形式：
var numericData:Number = 9;
var textData:String = numericData.toString();
&#160;&#160;&#160;  例如，如果希望在屏幕上的文本字段中显示 Number 变量的值，应使用 toString() 方法。
TextField 类的 text 属性（表示实际在屏幕上显示的文本内容）被定义为 String，所以它
只能包含文本值。下面的一行代码将变量 numericData 中的数值转换为文本，然后使这些文
本显示在屏幕上名为 calculatorDisplay 的 [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=922</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>as3事件-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=921</link>
		<comments>http://www.jvcj.cn/?p=921#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:35:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[as3事件
2009年03月28日 星期六  17:11



&#160;&#160;&#160;  我们已经介绍了计算机程序就是计算机分步执行的一系列指令。一些简单的计算机程序仅包
括计算机执行的几个步骤以及程序的结束点。然而，ActionScript 程序可以保持运行、等待
用户输入或等待其它事件发生。事件是确定计算机执行哪些指令以及何时执行的机制。
&#160;&#160;&#160;  本质上，&#8220;事件&#8221;就是所发生的、ActionScript 能够识别并可响应的事情。许多事件与用户交互有关 &#8212; 例如，用户单击按钮，或按键盘上的键 &#8212; 但也有其它类型的事件。例如，如果
使用 ActionScript 加载外部图像，有一个事件可让您知道图像何时加载完毕。本质上，当
&#160;&#160;&#160;  ActionScript 程序正在运行时，Adobe Flash Player 只是坐等某些事情的发生，当这些事情发生时， Flash Player 将运行您为这些事件指定的特定 ActionScript 代码。基本事件处理
指定为响应特定事件而应执行的某些动作的技术称为&#8220;事件处理&#8221;。在编写执行事件处理的
&#160;&#160;&#160;  ActionScript 代码时，您需要识别三个重要元素：
&#160;&#160;&#160;  事件源：发生该事件的是哪个对象？例如，哪个按钮会被单击，或哪个 Loader 对象正在
加载图像？事件源也称为&#8220;事件目标&#8221;，因为 Flash Player 将此对象（实际在其中发生
事件）作为事件的目标。
&#160;&#160;&#160;  事件：将要发生什么事情，以及您希望响应什么事情？识别事件是非常重要的，因为许
多对象都会触发多个事件。
&#160;&#160;&#160;  响应：当事件发生时，您希望执行哪些步骤？
无论何时编写处理事件的 ActionScript 代码，都会包括这三个元素，并且代码将遵循以下基
本结构（以粗体显示的元素是您将针对具体情况填写的占位符）：
function eventResponse(eventObject:EventType):void
{
// 此处是为响应事件而执行的动作。
}
eventSource.addEventListener(EventType.EVENT_NAME, eventResponse);
&#160;&#160;&#160;  此代码执行两个操作。首先，定义一个函数，这是指定为响应事件而要执行的动作的方法。接下来，调用源对象的 addEventListener() 方法，实际上就是为指定事件&#8220;订阅&#8221;该函数，
以便当该事件发生时，执行该函数的动作。我们将更为详细地讨论其中每个部分。
&#160;&#160;&#160;  &#8220;函数&#8221;提供一种将若干个动作组合在一起、用类似于快捷名称的单个名称来执行这些动作的方法。函数与方法完全相同，只是不必与特定类关联（事实上，方法可以被定义为与特定类关
联的函数）。在创建事件处理函数时，必须选择函数名称（本例中为 eventResponse），还必
须指定一个参数（本例中的名称为 eventObject）。指定函数参数类似于声明变量，所以还必
须指明参数的数据类型。将为每个事件定义一个 ActionScript [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=921</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3中逻辑和资源整合的几种方法-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=920</link>
		<comments>http://www.jvcj.cn/?p=920#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:34:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[AS3中逻辑和资源整合的几种方法
2009年03月29日 星期日  16:19


1.资源绑定
    a)早绑定
早绑定是最早最先的用的方法，就是相应的元件和相应的类进行绑定(设置它们的linkage)，通过这样的做法达到资源与逻辑分离的目的。它的好处是相当的方便，不需要使用代码创建资源，是快速开发的首选。但是它的缺点也是很明显的

i.如果对代码进行重构，由于flash的资源库对linkage的更改相当不便，这里会消耗相当一部分的体力

ii.如果项目规模增大，进行资源导出的时候会消耗相当长的时间，由于使用Flash进行编译，编译速度没有任何优化的余地，时间将被白白消耗掉
    b)晚绑定
FlashPlayer有这么一个特性：如果两个一模一样的类被加载进来了，FlashPlayer是会保留第一个类而丢弃第二个类。晚绑定就是利用这个特性而实现的。只要保证逻辑类比资源类先加载，资源类就会被抛弃。晚绑定是针对早绑定的第二条缺陷而进行改进的。用这种方法的话，由于指定的linkage的类并不存在，因此编译的速度相当的快。但是至于第一条缺陷，却无法避免。
2.Embedded

Embedded是一种新的资源嵌入的方法，使用它我们可以很方便地把各种资源物件嵌入到我们的程序当中。但是，如果是使用embedded方法，载入的Flash元件会失去所有写在时间轴的脚本。如果是影片，丢掉了stop()这样的脚本还是很让人恼火的。但是如果是用这种方法嵌入字体，文本，声音，却是无比的便捷。特别是字体，嵌入的时候还能指定嵌入字体的类型，以及范围等。
3.导出swc
从资源中导出swc，把资源当作一个library来使用是相当让人愉悦的一件事情
首先，资源可以使用自己的命名空间，例如cn.ml.assets.login.FormAssets,免去了由于代码重构中需要对代码的命名空间进行加载的情况
其次，导出的swc中的资源的脚本不会丢失，依然能用;
再次，开发中并不需要进行资源加载的过程或者像embedded中畸形的初始化。



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=920</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>运算符-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=919</link>
		<comments>http://www.jvcj.cn/?p=919#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:33:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[运算符
2009年03月29日 星期日  17:23



&#160;&#160;  &#8220;运算符&#8221;是用于执行计算的特殊符号（有时候是词）。这些运算符主要用于数学运算，有
时也用于值的比较。通常，运算符使用一个或多个值并&#8220;算出&#8221;一个结果。例如：
&#160;&#160;&#160;  加法运算符 (+) 将两个值相加，结果是一个数字：
var sum:Number = 23 + 32;
&#160;&#160;&#160;  乘法运算符 (*) 将一个值与另一个值相乘，结果是一个数字：
var energy:Number = mass * speedOfLight * speedOfLight;
&#160;&#160;&#160;  等于运算符 (==) 比较两个值，看它们是否相等，结果是一个 true 或 false （布尔）值：
if (dayOfWeek == &#34;Wednesday&#34;)
{
takeOutTrash();
}
&#160;&#160;&#160;  如上所示，等于运算符和其它&#8220;比较&#8221;运算符通常用于 if 语句，以确定是否应执行某些
指令。




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=919</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>注释-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=918</link>
		<comments>http://www.jvcj.cn/?p=918#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:32:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[注释
2009年03月29日 星期日  17:23



&#160;&#160;&#160;  在编写 ActionScript 时，您通常会希望给自己留一些注释，这些注释可能解释某些代码行如何工作或者为什么做出特定的选择。&#8220;代码注释&#8221;是一个工具，用于编写计算机应在代码中忽略的文本。ActionScript 包括两种注释：
&#160;&#160;&#160;&#160;  单行注释：在一行中的任意位置放置两个斜杠来指定单行注释。计算机将忽略斜杠后直
到该行末尾的所有内容：
// 这是注释；计算机将会忽略它。
var age:Number = 10; // 默认情况下，将 age 设置为 10。
&#160;&#160;&#160;&#160;  多行注释：多行注释包括一个开始注释标记 (/*)、注释内容和一个结束注释标记 (*/)。
无论注释跨多少行，计算机都将忽略开始标记与结束标记之间的所有内容：
/*
这可能是一段非常长的说明，可能说明
特定函数的作用或解释某一部分代码。
在任何情况下，计算机都将忽略所有这些行。
*/
&#160;&#160;&#160;  注释的另一种常见用法是临时禁用一行或多行代码 &#8212; 例如，如果您要测试执行某操作的其
它方法，或要查明为什么某些 ActionScript 代码没有按您期望的方式工作。




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=918</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>流控制-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=917</link>
		<comments>http://www.jvcj.cn/?p=917#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:31:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[流控制
2009年03月29日 星期日  17:24



&#160;&#160;&#160;  在程序中，经常需要重复某些动作，仅执行某些动作而不执行其它动作，或根据某些条件执
行替代动作等等。&#8220;流控制&#8221;就是用于控制执行哪些动作。ActionScript 中提供了几种类型
的流控制元素。
&#160;&#160;&#160;  函数：函数类似于快捷方式，提供了一种将一系列动作组合到单个名称下的方法，并可
用于执行计算。函数对于处理事件尤为重要，但也可用作组合一系列指令的通用工具。有
关函数的详细信息，请参阅第102 页的&#8220;函数&#8221;。
&#160;&#160;&#160;  循环：使用循环结构，可指定计算机反复执行一组指令，直到达到设定的次数或某些条
件改变为止。通常借助循环并使用一个其值在计算机每执行完一次循环后就改变的变量
来处理几个相关项。有关循环的详细信息，请参阅第100 页的&#8220;循环&#8221;。
&#160;&#160;&#160;  条件语句：条件语句提供一种方法，用于指定仅在某些情况下才执行的某些指令或针对
不同的条件提供不同的指令集。最常见的一类条件语句是 if 语句。if 语句检查该语句
括号中的值或表达式。如果值为 true，则执行大括号中的代码行；否则，将忽略它们。
例如：
if (age &#60; 20)
{
// 显示针对青少年的特殊内容
}
&#160;&#160;&#160;  else 语句与 if 语句一起使用，用于指定在条件不为 true 时执行的替代指令：
if (username == &#34;admin&#34;)
{
// 执行一些仅限管理员完成的操作，如显示额外选项
}
else
{
// 执行一些非管理员完成的操作
}




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=917</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>将代码存储在 Flash 时间轴中的帧中-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=916</link>
		<comments>http://www.jvcj.cn/?p=916#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:30:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[将代码存储在 Flash 时间轴中的帧中
2009年03月29日 星期日  17:24


&#160;&#160;  在 Flash 创作环境中，可以向时间轴中的任何帧添加 ActionScript 代码。该代码将在影片播放期间播放头进入该帧时执行。通过将 ActionScript 代码放在帧中，可以方便地向使用 Flash 创作工具构建的应用程序添加行为。您可以将代码添加到主时间轴中的任何帧，或任何 MovieClip 元件的时间轴中的任何帧。但是，这种灵活性也有一定的代价。构建较大的应用程序时，这会容易导致无法跟踪哪些帧包含哪些脚本。这会使得随着时间的过去，应用程序越来越难以维护。许多开发人员将代码仅仅放在时间轴的第 1 帧中，或放在 Flash 文档中的特定图层上，以简化在 Flash 创作工具中组织其 ActionScript 代码的工作。这样，就可以容易地在 Flash FLA文件中查找和维护代码。但是，要在另一个 Flash 项目中使用相同的代码，您必须将代码复制并粘贴到新文件中。
&#160;&#160;&#160;&#160;  如果想要以后能够在其它 Flash 项目中使用您的 ActionScript 代码，您需要将代码存储在外部 ActionScript 文件（扩展名为 .as 的文本文件）中。



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=916</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>将代码存储在 ActionScript 文件中-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=915</link>
		<comments>http://www.jvcj.cn/?p=915#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:29:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[将代码存储在 ActionScript 文件中
2009年03月29日 星期日  17:25


&#160;&#160;&#160;  如果您的项目中包括重要的 ActionScript 代码，则最好在单独的 ActionScript 源文件（扩
展名为 .as 的文本文件）中组织这些代码。可以采用以下两种方式之一来设置 ActionScript
文件的结构，具体取决于您打算如何在应用程序中使用该文件。
&#160;&#160;&#160;  非结构化 ActionScript 代码：编写 ActionScript 代码行（包括语句或函数定义），就好
像它们是直接在时间轴脚本、MXML 文件等文件中输入的一样。
使用 ActionScript 中的 include 语句或 Adobe Flex MXML 中的 &#60;mx:Script&#62; 标签，
可以访问以此方式编写的 ActionScript。ActionScript include 语句会导致在特定位置
以及脚本中的指定范围内插入外部 ActionScript 文件的内容，就好像它们是直接在那里
输入的一样。在 Flex MXML 语言中，可使用 &#60;mx:Script&#62; 标签来指定源属性，从而标
识要在应用程序中的该点处加载的外部 ActionScript 文件。例如，以下标签将加载名为
Box.as 的外部 ActionScript 文件：
&#60;mx:Script source=&#8220;Box.as&#8221; /&#62;
&#160;&#160;&#160;  ActionScript 类定义：定义一个 ActionScript 类，包含它的方法和属性。
定义一个类后，您就可以像对任何内置的 ActionScript [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=915</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ActionScript 开发过程-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=914</link>
		<comments>http://www.jvcj.cn/?p=914#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:28:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[ActionScript 开发过程
2009年03月29日 星期日  17:25


&#160;&#160;&#160;  无论 ActionScript 项目是大还是小，遵循一个过程来设计和开发应用程序都有助于您提高
工作效率。下面几个步骤说明了构建使用 ActionScript 3.0 的应用程序的基本开发过程：
1. 设计应用程序。
您应先以某种方式描述应用程序，然后再开始构建该应用程序。
2. 编写 ActionScript 3.0 代码。
您可以使用 Flash、Flex Builder、Dreamweaver 或文本编辑器来创建 ActionScript 代码。
3. 创建 Flash 或 Flex 应用程序文件来运行代码。
在 Flash 创作工具中，此步骤包括：创建新的 FLA 文件、设置发布设置、向应用程序添加
用户界面组件以及引用 ActionScript 代码。在 Flex 开发环境中，创建新的应用程序文件
涉及：定义该应用程序并使用 MXML 来添加用户界面组件以及引用 ActionScript 代码。
4. 发布和测试 ActionScript 应用程序。
这涉及在 Flash 创作环境或 Flex 开发环境中运行应用程序，确保该应用程序执行您期望
的所有操作。
请注意：不必按顺序执行这些步骤，或者说不必在完全完成一个步骤后再执行另一步骤。例
如，您可能先设计应用程序的一个屏幕（步骤 1），然后创建图形、按钮等等（步骤 3），
最后再编写 ActionScript 代码（步骤 2）并进行测试（步骤 4）。您也可能先设计应用程序
的一部分，然后再一次添加一个按钮或一个界面元素，并为每个按钮或界面元素编写
ActionScript，并在生成后对它进行测试。虽然记住开发过程的这 4 个阶段是十分有用的，
但在实际的开发过程中适当地调整各个阶段的顺序通常有助于提高效率。



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=914</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>语言概述-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=913</link>
		<comments>http://www.jvcj.cn/?p=913#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:27:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[语言概述
2009年03月30日 星期一  12:49



对象是 ActionScript 3.0 语言的核心 &#8212; 它们是ActionScript 3.0 语言的基本构造块。您所声明的每个变量、所编写的每个函数以及所创建的每个类实例都是一个对象。可以将ActionScript 3.0 程序视为一组执行任务、响应事件以及相互通信的对象。熟悉 Java 或 C++ 中面向对象的编程 (OOP) 的程序员可能会将对象视为包含以下两类成员的模块：存储在成员变量或属性中的数据，以及可通过方法访问的行为。ECMAScript 第 4 版草案（ActionScript 3.0 所基于的标准）以相似但稍有不同的方式定义对象。在 ECMAScript草案中，对象只是属性的集合。这些属性是一些容器，除了保存数据，还保存函数或其它对象。以这种方式附加到对象的函数称为方法。尽管具有 Java 或 C++ 背景的程序员可能会觉得 ECMAScript 草案中的定义有些奇怪，但实际上，用ActionScript 3.0 类定义对象类型与在 Java 或 C++ 中定义类的方式非常相似。在讨论 ActionScript 对象模型和其它高级主题时，了解这两种对象定义之间的区别很重要，但在其它大多数情况下，&#8220;属性&#8221;一词都表示类成员变量（而不是方法） 。例如，《ActionScript 3.0 语言和组件参考》使用&#8220;属性&#8221;一词表示变量或 getter-setter 属性，使用&#8220;方法&#8221;一词表示作为类的一部分的函数。ActionScript 中的类与 Java 或 C++ 中的类之间有一个细小的差别，那就是 ActionScript中的类不仅仅是抽象实体。ActionScript 类由存储类的属性和方法的类对象 表示，这样便可以使用可能不为 Java 和 C++ [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=913</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>对象和类-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=912</link>
		<comments>http://www.jvcj.cn/?p=912#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:26:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[对象和类
2009年03月30日 星期一  12:50



在 ActionScript 3.0 中，每个对象都是由类定义的。可将类视为某一类对象的模板或蓝图。类定义中可以包括变量和常量以及方法，前者用于保存数据值，后者是封装绑定到类的行为的函数。存储在属性中的值可以是&#8220;基元值&#8221;，也可以是其它对象。基元值是指数字、字符串或布尔值。
ActionScript 中包含许多属于核心语言的内置类。其中的某些内置类（如 Number、Boolean 和 String）表示 ActionScript 中可用的基元值。其它类（如 Array、Math 和XML）定义属于 ECMAScript 标准的更复杂对象。所有的类（无论是内置类还是用户定义的类）都是从 Object 类派生的。以前在 ActionScript方面有经验的程序员一定要注意到，Object 数据类型不再是默认的数据类型，尽管其它所有类仍从它派生。在 ActionScript 2.0 中，下面的两行代码等效，因为缺乏类型注释意味着变量为 Object 类型：
var someObj:Object;
var someObj;
但是，ActionScript 3.0 引入了无类型变量这一概念，这一类变量可通过以下两种方法来指定：
var someObj:*;
var someObj;
无类型变量与 Object 类型的变量不同。二者的主要区别在于无类型变量可以保存特殊值undefined，而 Object 类型的变量则不能保存该值。您可以使用 class 关键字来定义自己的类。在方法声明中，可通过以下三种方法来声明类属性 (property)：用 const 关键字定义常量，用 var 关键字定义变量，用 get 和 set 属性(attribute) 定义 getter 和 setter 属性 (property)。可以用 function 关键字来声明方法。可使用 [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=912</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>包-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=911</link>
		<comments>http://www.jvcj.cn/?p=911#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:25:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[包
2009年03月30日 星期一  12:50


在 ActionScript 3.0 中，包是用命名空间实现的，但包和命名空间并不同义。在声明包时，
可以隐式创建一个特殊类型的命名空间并保证它在编译时是已知的。显式创建的命名空间在
编译时不必是已知的。
下面的示例使用 package 指令来创建一个包含单个类的简单包：
package samples
{
public class SampleCode
{
public var sampleGreeting:String;
public function sampleFunction()
{
trace(sampleGreeting + &#34; from sampleFunction()&#34;);
}
}
}
在本例中，该类的名称是 SampleCode。由于该类位于 samples 包中，因此编译器在编译
时会自动将其类名称限定为完全限定名称：samples.SampleCode。编译器还限定任何属性
或方法的名称，以便 sampleGreeting 和 sampleFunction() 分别变成
samples.SampleCode.sampleGreeting 和 samples.SampleCode.sampleFunction()。
许多开发人员（尤其是那些具有 Java 编程背景的人）可能会选择只将类放在包的顶级。但是，
ActionScript 3.0 不但支持将类放在包的顶级，而且还支持将变量、函数甚至语句放在包的顶
级。此功能的一个高级用法是，在包的顶级定义一个命名空间，以便它对于该包中的所有类均
可用。但是，请注意，在包的顶级只允许使用两个访问说明符：public 和 internal。Java 允
许将嵌套类声明为私有，而 ActionScript 3.0 则不同，它既不支持嵌套类也不支持私有类。
但是，在其它许多方面，ActionScript 3.0 中的包与 Java 编程语言中的包非常相似。从上一
个示例可看出，完全限定的包引用点运算符 (.) 来表示，这与 Java 相同。可以用包将代码组
织成直观的分层结构，以供其他程序员使用。这样，您就可以将自己所创建的包与他人共享，
还可以在自己的代码中使用他人创建的包，从而推动了代码共享。
使用包还有助于确保所使用的标识符名称是唯一的，而且不与其它标识符名称冲突。事实
上，有些人认为这才是包的主要优点。例如，假设两个希望相互共享代码的程序员各创建了
一个名为 SampleCode 的类。如果没有包，这样就会造成名称冲突，唯一的解决方法就是重
命名其中的一个类。但是，使用包，就可以将其中的一个（最好是两个）类放在具有唯一名
称的包中，从而轻松地避免了名称冲突。
您还可以在包名称中嵌入点来创建嵌套包，这样就可以创建包的分层结构。Flash Player
API 提供的 flash.xml 包就是一个很好的示例。flash.xml 包嵌套在 Flash [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=911</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>创建包-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=910</link>
		<comments>http://www.jvcj.cn/?p=910#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:24:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[创建包
2009年03月30日 星期一  12:51



ActionScript 3.0 在包、类和源文件的组织方式上具有很大的灵活性。早期的 ActionScript
版本只允许每个源文件有一个类，而且要求源文件的名称与类名称匹配。ActionScript 3.0
允许在一个源文件中包括多个类，但是，每个文件中只有一个类可供该文件外部的代码使
用。换言之，每个文件中只有一个类可以在包声明中进行声明。您必须在包定义的外部声明
其它任何类，以使这些类对于该源文件外部的代码不可见。在包定义内部声明的类的名称必
须与源文件的名称匹配。
ActionScript 3.0 在包的声明方式上也具有更大的灵活性。在早期的 ActionScript 版本中，
包只是表示可用来存放源文件的目录，您不必用 package 语句来声明包，而是在类声明中将
包名称包括在完全限定的类名称中。在 ActionScript 3.0 中，尽管包仍表示目录，但是它现
在不只包含类。在 ActionScript 3.0 中，使用 package 语句来声明包，这意味着您还可以
在包的顶级声明变量、函数和命名空间，甚至还可以在包的顶级包括可执行语句。如果在包
的顶级声明变量、函数或命名空间，则在顶级只能使用 public 和 internal 属性，并且每
个文件中只能有一个包级声明使用 public 属性（无论该声明是类声明、变量声明、函数声
明还是命名空间声明）。
包的作用是组织代码并防止名称冲突。您不应将包的概念与类继承这一不相关的概念混淆。
位于同一个包中的两个类具有共同的命名空间，但是它们在其它任何方面都不必相关。同
样，在语义方面，嵌套包可以与其父包无关。



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=910</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>导入包-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=909</link>
		<comments>http://www.jvcj.cn/?p=909#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:23:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[导入包
2009年03月30日 星期一  12:51


如果您希望使用位于某个包内部的特定类，则必须导入该包或该类。这与 ActionScript 2.0
不同，在 ActionScript 2.0 中，类的导入是可选的。
以本章前面的 SampleCode 类示例为例。如果该类位于名为 samples 的包中，那么，在使
用 SampleCode 类之前，您必须使用下列导入语句之一：
import samples.*;
或者
import samples.SampleCode;
通常，import 语句越具体越好。如果您只打算使用 samples 包中的 SampleCode 类，则应只导
入 SampleCode 类，而不应导入该类所属的整个包。导入整个包可能会导致意外的名称冲突。
还必须将定义包或类的源代码放在类路径 内部。类路径是用户定义的本地目录路径列表，它
决定了编译器将在何处搜索导入的包和类。类路径有时称为&#8220;生成路径&#8221;或&#8220;源路径&#8221;。
在正确地导入类或包之后，可以使用类的完全限定名称 (samples.SampleCode)，也可以只
使用类名称本身 (SampleCode)。
当同名的类、方法或属性会导致代码不明确时，完全限定的名称非常有用，但是，如果将它
用于所有的标识符，则会使代码变得难以管理。例如，在实例化 SampleCode 类的实例时，
使用完全限定的名称会导致代码冗长：
var mySample:samples.SampleCode = new samples.SampleCode();
包的嵌套级别越高，代码的可读性越差。如果您确信不明确的标识符不会导致问题，就可以
通过使用简单的标识符来提高代码的可读性。例如，如果在实例化 SampleCode 类的新实例
时仅使用类标识符，代码就会简短得多。
var mySample:SampleCode = new SampleCode();
如果您尝试使用标识符名称，而不先导入相应的包或类，编译器将找不到类定义。另一方面，
即便您导入了包或类，只要尝试定义的名称与所导入的名称冲突，也会产生错误。
创建包时，该包的所有成员的默认访问说明符是 internal，这意味着，默认情况下，包成员
仅对其所在包的其它成员可见。如果您希望某个类对包外部的代码可用，则必须将该类声明
为 public。例如，下面的包包含 SampleCode 和 CodeFormatter 两个类：
// SampleCode.as 文件
package samples
{
public class SampleCode {}
}
// CodeFormatter.as 文件
package samples
{
class CodeFormatter [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=909</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>命名空间-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=908</link>
		<comments>http://www.jvcj.cn/?p=908#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:22:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[命名空间
2009年03月30日 星期一  12:52


通过命名空间可以控制所创建的属性和方法的可见性。请将 public、private、protected
和 internal 访问控制说明符视为内置的命名空间。如果这些预定义的访问控制说明符无法
满足您的要求，您可以创建自己的命名空间。
如果您熟悉 XML 命名空间，那么，您对这里讨论的大部分内容不会感到陌生，但是
ActionScript 实现的语法和细节与 XML 的稍有不同。即使您以前从未使用过命名空间，也
没有关系，因为命名空间概念本身很简单，但是其实现涉及一些您需要了解的特定术语。
要了解命名空间的工作方式，有必要先了解属性或方法的名称总是包含两部分：标识符和命
名空间。标识符通常被视为名称。例如，以下类定义中的标识符是 sampleGreeting 和
sampleFunction()：
class SampleCode
{
var sampleGreeting:String;
function sampleFunction () {
trace(sampleGreeting + &#34; from sampleFunction()&#34;);
}
}
只要定义不以命名空间属性开头，就会用默认 internal 命名空间限定其名称，这意味着，
它们仅对同一个包中的调用方可见。如果编译器设置为严格模式，则编译器会发出一个警
告，指明 internal 命名空间将应用于没有命名空间属性的任何标识符。为了确保标识符可
在任何位置使用，您必须在标识符名称的前面明确加上 public 属性。在上面的示例代码中，
sampleGreeting 和 sampleFunction() 都有一个命名空间值 internal。
使用命名空间时，应遵循以下三个基本步骤。第一，必须使用 namespace 关键字来定义命名
空间。例如，下面的代码定义 version1 命名空间：
namespace version1;
第二，在属性或方法声明中，使用命名空间（而非访问控制说明符）来应用命名空间。下面
的示例将一个名为 myFunction() 的函数放在 version1 命名空间中：
version1 function myFunction() {}
第三，在应用了该命名空间后，可以使用 use 指令引用它，也可以使用该命名空间来限定标
识符的名称。下面的示例通过 use 指令来引用 myFunction() 函数：
use namespace version1;
myFunction();
您还可以使用限定名称来引用 myFunction() 函数，如下面的示例所示：
version1::myFunction();
定义命名空间
命名空间中包含一个名为统一资源标识符 [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=908</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>应用命名空间-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=907</link>
		<comments>http://www.jvcj.cn/?p=907#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:21:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[应用命名空间
2009年03月30日 星期一  12:52



应用命名空间意味着在命名空间中放置定义。可以放在命名空间中的定义包括函数、变量和
常量（不能将类放在自定义命名空间中）。
例如，请考虑一个使用 public 访问控制命名空间声明的函数。在函数的定义中使用 public
属性会将该函数放在 public 命名空间中，从而使该函数对于所有的代码都可用。在定义了
某个命名空间之后，可以按照与使用 public 属性相同的方式来使用所定义的命名空间，该
定义将对于可以引用您的自定义命名空间的代码可用。例如，如果您定义一个名为 example1
的命名空间，则可以添加一个名为 myFunction() 的方法并将 example1 用作属性，如下面
的示例所示：
namespace example1;
class someClass
{
example1 myFunction() {}
}
如果在声明 myFunction() 方法时将 example1 命名空间用作属性，则意味着该方法属于
example1 命名空间。
在应用命名空间时，应切记以下几点：
&#160;&#160;&#160;  对于每个声明只能应用一个命名空间。
&#160;&#160;&#160;  不能一次将同一个命名空间属性应用于多个定义。换言之，如果您希望将自己的命名空
间应用于 10 个不同的函数，则必须将该命名空间作为属性分别添加到这 10 个函数的定
义中。
&#160;&#160;&#160;  如果您应用了命名空间，则不能同时指定访问控制说明符，因为命名空间和访问控制说
明符是互斥的。换言之，如果应用了命名空间，就不能将函数或属性声明为 public、
private、protected 或 internal。



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=907</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>引用命名空间-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=906</link>
		<comments>http://www.jvcj.cn/?p=906#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:20:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[引用命名空间
2009年03月30日 星期一  12:53


在使用借助于任何访问控制命名空间（如 public、private、protected 和 internal）声
明的方法或属性时，无需显式引用命名空间。这是因为对于这些特殊命名空间的访问由上下
文控制。例如，放在 private 命名空间中的定义会自动对于同一个类中的代码可用。但是，
对于您所定义的命名空间，并不存在这样的上下文相关性。要使用已经放在某个自定义命名
空间中的方法或属性，必须引用该命名空间。
可以用 use namespace 指令来引用命名空间，也可以使用名称限定符 (::) 来以命名空间限
定名称。用 use namespace 指令引用命名空间会打开该命名空间，这样它便可以应用于任何
未限定的标识符。例如，如果您已经定义了 example1 命名空间，则可以通过使用 use
namespace example1 来访问该命名空间中的名称：
use namespace example1;
myFunction();
一次可以打开多个命名空间。在使用 use namespace 打开了某个命名空间之后，它会在打开
它的整个代码块中保持打开状态。不能显式关闭命名空间。
但是，如果同时打开多个命名空间则会增加发生名称冲突的可能性。如果您不愿意打开命名
空间，则可以用命名空间和名称限定符来限定方法或属性名，从而避免使用 use namespace
指令。例如，下面的代码说明如何用 example1 命名空间来限定 myFunction() 名称：
example1::myFunction();



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=906</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用命名空间-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=905</link>
		<comments>http://www.jvcj.cn/?p=905#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:19:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[使用命名空间
2009年03月30日 星期一  12:54


在 Flash Player API 中的 flash.utils.Proxy 类中，可以找到用来防止名称冲突的命名空间的
实例。Proxy 类取代了 ActionScript 2.0 中的 Object.__resolve 属性，可用来截获对未定
义的属性或方法的引用，以免发生错误。为了避免名称冲突，将 Proxy 类的所有方法都放在
flash_proxy 命名空间中。
为了更好地了解 flash_proxy 命名空间的使用方法，您需要了解如何使用 Proxy 类。Proxy
类的功能仅对于继承它的类可用。换言之，如果您要对某个对象使用 Proxy 类的方法，则该
对象的类定义必须是对 Proxy 类的扩展。例如，如果您希望截获对未定义的方法的调用，则
应扩展 Proxy 类，然后覆盖 Proxy 类的 callProperty() 方法。
前面已讲到，实现命名空间的过程通常分为三步，即定义、应用然后引用命名空间。但是，
由于您从不显式调用 Proxy 类的任何方法，因此只是定义和应用 flash_proxy 命名空间，而
从不引用它。Flash Player API 定义 flash_proxy 命名空间并在 Proxy 类中应用它。在您
的代码中，只需要将 flash_proxy 命名空间应用于扩展 Proxy 类的类。
flash_proxy 命名空间按照与下面类似的方法在 flash.utils 包中定义：
package flash.utils
{
public namespace flash_proxy;
}
该命名空间将应用于 Proxy [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=905</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>变量-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=904</link>
		<comments>http://www.jvcj.cn/?p=904#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:18:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[变量
2009年03月30日 星期一  12:54


变量可用来存储程序中使用的值。要声明变量，必须将 var 语句和变量名结合使用。在
ActionScript 2.0 中，只有当您使用类型注释时，才需要使用 var 语句。在 ActionScript 3.0
中，总是需要使用 var 语句。例如，下面的 ActionScript 行声明一个名为 i 的变量：
var i;
如果在声明变量时省略了 var 语句，在严格模式下将出现编译器错误，在标准模式下将出现
运行时错误。例如，如果以前未定义变量 i，则下面的代码行将产生错误：
i; // 如果以前未定义 i，将出错
要将变量与一个数据类型相关联，则必须在声明变量时进行此操作。在声明变量时不指定变
量的类型是合法的，但这在严格模式下将产生编译器警告。可通过在变量名后面追加一个后
跟变量类型的冒号 (:) 来指定变量类型。例如，下面的代码声明一个 int 类型的变量 i：
var i:int;
可以使用赋值运算符 (=) 为变量赋值。例如，下面的代码声明一个变量 i 并将值 20 赋给它：
var i:int;
i = 20;
您可能会发现在声明变量的同时为变量赋值可能更加方便，如下面的示例所示：
var i:int = 20;
通常，在声明变量的同时为变量赋值的方法不仅在赋予基元值（如整数和字符串）时很常
用，而且在创建数组或实例化类的实例时也很常用。下面的示例显示了一个使用一行代码声
明和赋值的数组。
var numArray:Array = [&#34;zero&#34;, &#34;one&#34;, &#34;two&#34;];
可以使用 new 运算符来创建类的实例。下面的示例创建一个名为 CustomClass 的实例，并
向名为 customItem 的变量赋予对该实例的引用：
var customItem:CustomClass [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=904</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>了解变量的作用域-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=903</link>
		<comments>http://www.jvcj.cn/?p=903#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:17:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[了解变量的作用域
2009年03月30日 星期一  12:55



变量的&#8220;作用域&#8221;是指可在其中通过引用词汇来访问变量的代码区域。&#8220;全局&#8221;变量是指在
代码的所有区域中定义的变量，而&#8220;局部&#8221;变量是指仅在代码的某个部分定义的变量。在
ActionScript 3.0 中，始终为变量分配声明它们的函数或类的作用域。全局变量是在任何函
数或类定义的外部定义的变量。例如，下面的代码通过在任何函数的外部声明一个名为
strGlobal 的全局变量来创建该变量。从该示例可看出，全局变量在函数定义的内部和外部
均可用。
var strGlobal:String = &#34;Global&#34;;
function scopeTest()
{
trace(strGlobal); // 全局
}
scopeTest();
trace(strGlobal); // 全局
可以通过在函数定义内部声明变量来将它声明为局部变量。可定义局部变量的最小代码区域
就是函数定义。在函数内部声明的局部变量仅存在于该函数中。例如，如果在名为
localScope() 的函数中声明一个名为 str2 的变量，该变量在该函数外部将不可用。
function localScope()
{
var strLocal:String = &#34;local&#34;;
}
localScope();
trace(strLocal); // 出错，因为未在全局定义 strLocal
如果用于局部变量的变量名已经被声明为全局变量，那么，当局部变量在作用域内时，局部
定义会隐藏（或遮蔽）全局定义。全局变量在该函数外部仍然存在。例如，下面的代码创建
一个名为 str1 的全局字符串变量，然后在 scopeTest() 函数内部创建一个同名的局部变
量。该函数中的 trace 语句输出该变量的局部值，而函数外部的 trace 语句则输出该变量的
全局值。
var str1:String = &#34;Global&#34;;
function scopeTest ()
{
var str1:String = &#34;Local&#34;;
trace(str1); // 本地
}
scopeTest();
trace(str1); // 全局
与 C++ 和 Java 中的变量不同的是，ActionScript 变量没有块级作用域。代码块是指左大括
号 ({) 与右大括号 (}) 之间的任意一组语句。在某些编程语言（如 C++ [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=903</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>数据类型-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=902</link>
		<comments>http://www.jvcj.cn/?p=902#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:16:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[数据类型
2009年03月31日 星期二  12:05


&#8220;数据类型&#8221;用来定义一组值。例如， Boolean 数据类型所定义的一组值中仅包含两个值：
true 和 false。除了 Boolean 数据类型外，ActionScript 3.0 还定义了其它几个常用的数据
类型，如 String、Number 和 Array。您可以使用类或接口来自定义一组值，从而定义自己
的数据类型。ActionScript 3.0 中的所有值均是对象，而与它们是基元值还是复杂值无关。
&#8220;基元值&#8221;是一个属于下列数据类型之一的值：Boolean、int、Number、String 和 uint。
基元值的处理速度通常比复杂值的处理速度快，因为 ActionScript 按照一种尽可能优化内
存和提高速度的特殊方式来存储基元值。
&#8220;复杂值&#8221;是指基元值以外的值。定义复杂值的集合的数据类型包括：Array、Date、Error、
Function、RegExp、XML 和 XMLList。
许多编程语言都区分基元值及其包装对象。例如，Java 中有一个 int 基元值和一个包装它的
java.lang.Integer 类。Java 基元值不是对象，但它们的包装是对象，这使得基元值对于某些
运算非常有用，而包装对象则更适合于其它运算。在 ActionScript 3.0 中，出于实用的目
的，不对基元值及其包装对象加以区分。所有的值（甚至基元值）都是对象。Flash Player
将这些基元类型视为特例 &#8212; 它们的行为与对象相似，但是不需要创建对象所涉及的正常开
销。这意味着下面的两行代码是等效的：
var someInt:int = 3;
var someInt:int = new int(3);
上面列出的所有基元数据类型和复杂数据类型都是由 ActionScript 3.0 核心类定义的。通过
ActionScript 3.0 核心类，可以使用字面值（而非 new 运算符）创建对象。例如，可以使用
字面值或 Array 类的构造函数来创建数组，如下所示：
var someArray:Array = [1, 2, 3]; [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=902</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>类型检查-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=901</link>
		<comments>http://www.jvcj.cn/?p=901#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:15:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[类型检查
2009年03月31日 星期二  12:06


类型检查可以在编译时或运行时执行。静态类型语言（如 C++ 和 Java）在编译时执行类型
检查。动态类型语言（如 Smalltalk 和 Python）在运行时执行类型检查。ActionScript 3.0
是动态类型的语言，它在运行时执行类型检查，同时也支持在名为&#8220;严格模式&#8221;的特殊编译
器模式下在编译时执行类型检查。在严格模式下，类型检查既发生在编译时也发生在运行
时，但是在标准模式下，类型检查仅发生在运行时。
在构造代码时，动态类型的语言带来了极大的灵活性，但代价是在运行时可能出现类型错
误。静态类型的语言在编译时报告类型错误，但代价是要求类型信息在编译时是已知的。
编译时类型检查
在较大的项目中通常建议使用编译时类型检查，因为随着项目变大，相对于尽早捕获类型错
误，数据类型的灵活性通常会变得不那么重要。这就是为什么将 Adobe Flash CS3 Professional
和 Adobe Flex Builder 2 中的 ActionScript 编译器默认设置为在严格模式下运行的原因。
为了提供编译时类型检查，编译器需要知道代码中的变量或表达式的数据类型信息。为了显
式声明变量的数据类型，请在变量名后面添加后跟数据类型的冒号运算符 (:) 作为其后缀。
要将数据类型与参数相关联，应使用后跟数据类型的冒号运算符。例如，下面的代码向
xParam 参数中添加数据类型信息，并用显式数据类型声明变量 myParam：
function runtimeTest(xParam:String)
{
trace(xParam);
}
var myParam:String = &#8220;hello&#8221;;
runtimeTest(myParam);
在严格模式下，ActionScript 编译器将类型不匹配报告为编译器错误。例如，下面的代码声
明一个 Object 类型的函数参数 xParam，但是之后又尝试向该参数赋予 String 类型和
Number 类型的值。这在严格模式下会产生编译器错误。
function dynamicTest(xParam:Object)
{
if (xParam is String)
{
var myStr:String = xParam; // 在严格模式下产生编译器错误
trace(&#34;String: &#34; + myStr);
}
else if (xParam is Number)
{
var myNum:Number = [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=901</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>动态类-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=900</link>
		<comments>http://www.jvcj.cn/?p=900#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:14:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[动态类
2009年03月31日 星期二  12:06


&#8220;动态&#8221;类定义在运行时可通过添加/ 更改属性和方法来改变的对象。非动态类（如 String
类）是&#8220;密封&#8221;类。您不能在运行时向密封类中添加属性或方法。
在声明类时，可以通过使用 dynamic 属性来创建动态类。例如，下面的代码创建一个名为
Protean 的动态类：
dynamic class Protean
{
private var privateGreeting:String = &#34;hi&#34;;
public var publicGreeting:String = &#34;hello&#34;;
function Protean()
{
trace(&#34;Protean instance created&#34;);
}
}
如果要在以后实例化 Protean 类的实例，则可以在类定义的外部向该类中添加属性或方法。
例如，下面的代码创建 Protean 类的一个实例，并向该实例中添加两个名称分别为 aString
和 aNumber 的属性：
var myProtean:Protean = new Protean();
myProtean.aString = &#34;testing&#34;;
myProtean.aNumber = 3;
trace(myProtean.aString, myProtean.aNumber); // 测试 3
添加到动态类实例中的属性是运行时实体，因此会在运行时完成所有类型检查。不能向以这
种方式添加的属性中添加类型注释。
您还可以定义一个函数并将该函数附加到 myProtean 实例的某个属性，从而向 myProtean
实例中添加方法。下面的代码将 trace 语句移到一个名为 traceProtean() 的方法中：
var myProtean:Protean = new Protean();
myProtean.aString = &#34;testing&#34;;
myProtean.aNumber = [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=900</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>数据类型说明-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=899</link>
		<comments>http://www.jvcj.cn/?p=899#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:13:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[数据类型说明
2009年03月31日 星期二  12:07


基元数据类型包括 Boolean、int、Null、Number、String、uint 和 void。ActionScript
核心类还定义下列复杂数据类型：Object、Array、Date、Error、Function、RegExp、
XML 和 XMLList。
Boolean 数据类型
Boolean 数据类型包含两个值：true 和 false。对于 Boolean 类型的变量，其它任何值都
是无效的。已经声明但尚未初始化的布尔变量的默认值是 false。
int 数据类型
int 数据类型在内部存储为 32 位整数，它包含一组介于 -2,147,483,648 (-231) 和
2,147,483,647 (231-1) 之间的整数（包括 -2,147,483,648 和 2,147,483,647）。早期
的 ActionScript 版本仅提供 Number 数据类型，该数据类型既可用于整数又可用于浮点
数。在 ActionScript 3.0 中，现在可以访问 32 位带符号整数和无符号整数的低位机器类
型。如果您的变量将不会使用浮点数，那么，使用 int 数据类型来代替 Number 数据类型
应会更快更高效。
对于小于 int 的最小值或大于 int 的最大值的整数值，应使用 Number 数据类型。Number
数据类型可以处理 -9,007,199,254,740,992 和 9,007,199,254,740,992 （53 位整数值）
之间的值。int 数据类型的变量的默认值是 0。
Null 数据类型
Null [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=899</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>类型转换-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=898</link>
		<comments>http://www.jvcj.cn/?p=898#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:12:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[类型转换
2009年03月31日 星期二  12:07


在将某个值转换为其它数据类型的值时，就说发生了类型转换。类型转换可以是&#8220;隐式的&#8221;，
也可以是&#8220;显式的&#8221; 。隐式转换又称为&#8220;强制&#8221; ，有时由 Flash Player 在运行时执行。例
如，如果将值 2 赋给 Boolean 数据类型的变量，则 Flash Player 会先将值 2 转换为布尔值
true，然后再将其赋给该变量。显式转换又称为&#8220;转换&#8221;，在代码指示编译器将一个数据类
型的变量视为属于另一个数据类型时发生。在涉及基元值时，转换功能将一个数据类型的值
实际转换为另一个数据类型的值。要将对象转换为另一类型，请用小括号括起对象名并在它
前面加上新类型的名称。例如，下面的代码提取一个布尔值并将它转换为一个整数：
var myBoolean:Boolean = true;
var myINT:int = int(myBoolean);
trace(myINT); // 1
隐式转换
在运行时，隐式转换会发生在许多上下文中：
■ 在赋值语句中
■ 在将值作为函数的参数传递时
■ 在从函数中返回值时
■ 在使用某些运算符（如加法运算符 (+)）的表达式中
对于用户定义的类型，当要转换的值是目标类（或者派生自目标类的类）的实例时，隐式转
换会成功。如果隐式转换不成功，就会出现错误。例如，下面的代码中包含成功的隐式转换
和不成功的隐式转换：
class A {}
class B extends A {}
var objA:A = new A();
var objB:B = new B();
var arr:Array = new Array();
objA = objB; // 转换成功。
objB = arr; [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=898</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>区分大小写-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=897</link>
		<comments>http://www.jvcj.cn/?p=897#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:11:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[区分大小写
2009年03月31日 星期二  12:08


ActionScript 3.0 是一种区分大小写的语言。只是大小写不同的标识符会被视为不同。例如，下面的代码创建两个不同的变量：
var num1:int;
var Num1:int;



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=897</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>点语法-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=896</link>
		<comments>http://www.jvcj.cn/?p=896#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:10:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[点语法
2009年03月31日 星期二  12:08


可以通过点运算符 (.) 来访问对象的属性和方法。使用点语法，可以使用后跟点运算符和属
性名或方法名的实例名来引用类的属性或方法。以下面的类定义为例：
class DotExample
{
public var prop1:String;
public function method1():void {}
}
借助于点语法，可以使用在如下代码中创建的实例名来访问 prop1 属性和 method1() 方法：
var myDotEx:DotExample = new DotExample();
myDotEx.prop1 = &#8220;hello&#8221;;
myDotEx.method1();
定义包时，可以使用点语法。可以使用点运算符来引用嵌套包。例如，EventDispatcher 类
位于一个名为 events 的包中，该包嵌套在名为 flash 的包中。可以使用下面的表达式来引用
events 包：
flash.events
还可以使用此表达式来引用 EventDispatcher 类：
flash.events.EventDispatcher



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=896</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>字面值-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=895</link>
		<comments>http://www.jvcj.cn/?p=895#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:09:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[字面值
2009年03月31日 星期二  12:09


&#8220;字面值&#8221;是直接出现在代码中的值。下面的示例都是字面值：
17
&#34;hello&#34;
-3
9.4
null
undefined
true
false
字面值还可以组合起来构成复合字面值。数组文本括在中括号字符 ([]) 中，各数组元素之间
用逗号隔开。数组文本可用于初始化数组。下面的几个示例显示了两个使用数组文本初始化的数组。您可
以使用 new 语句将复合字面值作为参数传递给 Array 类构造函数，但是，您还可以在实例化
下面的 ActionScript 核心类的实例时直接赋予字面值：Object、Array、String、Number、
int、uint、XML、XMLList 和 Boolean。
// 使用 new 语句。
var myStrings:Array = new Array([&#34;alpha&#34;, &#34;beta&#34;, &#34;gamma&#34;]);
var myNums:Array = new Array([1,2,3,5,8]);
// 直接赋予字面值。
var myStrings:Array = [&#34;alpha&#34;, &#34;beta&#34;, &#34;gamma&#34;];
var myNums:Array = [1,2,3,5,8];
字面值还可用来初始化通用对象。通用对象是 Object 类的一个实例。对象字面值括在大括
号 ({}) 中，各对象属性之间用逗号隔开。每个属性都用冒号字符 (:) 进行声明，冒号用于分
隔属性名和属性值。
可以使用 new 语句创建一个通用对象并将该对象的字面值作为参数传递给 Object 类构造函
数，也可以在声明实例时直接将对象字面值赋给实例。下面的示例创建一个新的通用对象，
并使用三个值分别设置为 1、2 和 3 的属性（propA、propB 和 propC）初始化该对象：
// 使用 new 语句。
var [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=895</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>分号-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=894</link>
		<comments>http://www.jvcj.cn/?p=894#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:08:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[分号
2009年03月31日 星期二  12:10


可以使用分号字符 (;) 来终止语句。如果您省略分号字符，则编译器将假设每一行代码代表一条语句。由于很多程序员都习惯使用分号来表示语句结束，因此，如果您坚持使用分号来终止语句，则代码会更易于阅读。使用分号终止语句可以在一行中放置多个语句，但是这样会使代码变得难以阅读。



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=894</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>小括号-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=893</link>
		<comments>http://www.jvcj.cn/?p=893#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:07:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[小括号
2009年03月31日 星期二  12:11


在 ActionScript 3.0 中，可以通过三种方式来使用小括号 (())。首先，可以使用小括号来更改表达式中的运算顺序。组合到小括号中的运算总是最先执行。例如，小括号可用来改变如下代码中的运算顺序：
trace(2 + 3 * 4); // 14
trace( (2 + 3) * 4); // 20
第二，可以结合使用小括号和逗号运算符 (,) 来计算一系列表达式并返回最后一个表达式的
结果，如下面的示例所示：
var a:int = 2;
var b:int = 3;
trace((a++, b++, a+b)); // 7
第三，可以使用小括号来向函数或方法传递一个或多个参数，如下面的示例所示，此示例向
trace() 函数传递一个字符串值：
trace(&#34;hello&#34;); // hello



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=893</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>注释-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=892</link>
		<comments>http://www.jvcj.cn/?p=892#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:06:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[注释
2009年03月31日 星期二  12:11


ActionScript 3.0 代码支持两种类型的注释：单行注释和多行注释。这些注释机制与 C++ 和Java 中的注释机制类似。编译器将忽略标记为注释的文本。单行注释以两个正斜杠字符 (//) 开头并持续到该行的末尾。例如，下面的代码包含一个单行
注释：
var someNumber:Number = 3; // 单行注释
多行注释以一个正斜杠和一个星号 (/*) 开头，以一个星号和一个正斜杠 (*/) 结尾。
/* 这是一个可以跨
多行代码的多行注释。 */



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=892</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关键字和保留字-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=891</link>
		<comments>http://www.jvcj.cn/?p=891#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:05:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[关键字和保留字
2009年03月31日 星期二  12:11


&#8220;保留字&#8221;是一些单词，因为这些单词是保留给 ActionScript 使用的，所以，不能在代码中
将它们用作标识符。保留字包括&#8220;词汇关键字&#8221;，编译器将词汇关键字从程序的命名空间中
删除。如果您将词汇关键字用作标识符，则编译器会报告一个错误。下表列出了
ActionScript 3.0 词汇关键字：
as break case catch
class const continue default
delete do else extends
false finally for function
if implements import in
instanceof interface internal is
native new null package
private protected public return
super switch this throw
to true try typeof
use var void while
with
each get set namespace
include dynamic final native
override static
abstract boolean byte cast
char debugger double enum
export float [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=891</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>常量-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=890</link>
		<comments>http://www.jvcj.cn/?p=890#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:04:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[常量
2009年03月31日 星期二  12:12


ActionScript 3.0 支持 const 语句，该语句可用来创建常量。常量是指具有无法改变的固定
值的属性。只能为常量赋值一次，而且必须在最接近常量声明的位置赋值。例如，如果将常
量声明为类的成员，则只能在声明过程中或者在类构造函数中为常量赋值。
下面的代码声明两个常量。第一个常量 MINIMUM 是在声明语句中赋值的，第二个常量
MAXIMUM 是在构造函数中赋值的。
class A
{
public const MINIMUM:int = 0;
public const MAXIMUM:int;
public function A()
{
MAXIMUM = 10;
}
}
var a:A = new A();
trace(a.MINIMUM); // 0
trace(a.MAXIMUM); // 10
如果您尝试以其它任何方法向常量赋予初始值，则会出现错误。例如，如果您尝试在类的外
部设置 MAXIMUM 的初始值，将会出现运行时错误。
class A
{
public const MINIMUM:int = 0;
public const MAXIMUM:int;
}
var a:A = new A();
a[&#34;MAXIMUM&#34;] = 10; // 运行时错误
Flash Player API 定义了一组广泛的常量供您使用。按照惯例，ActionScript 中的常量全部
使用大写字母，各个单词之间用下划线字符 (_) 分隔。例如，MouseEvent 类定义将此命名
惯例用于其常量，其中每个常量都表示一个与鼠标输入有关的事件：
package flash.events
{
public [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=890</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>运算符的优先级和结合律-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=889</link>
		<comments>http://www.jvcj.cn/?p=889#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:03:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[运算符的优先级和结合律
2009年04月01日 星期三  19:29


运算符的优先级和结合律决定了运算符的处理顺序。虽然对于熟悉算术的人来说，编译器先
处理乘法运算符 (*) 然后再处理加法运算符 (+) 似乎是自然而然的事情，但实际上编译器要
求显式指定先处理哪些运算符。此类指令统称为&#8220;运算符优先级&#8221;。ActionScript 定义了一
个默认的运算符优先级，您可以使用小括号运算符 (()) 来改变它。例如，下面的代码改变上
一个示例中的默认优先级，以强制编译器先处理加法运算符，然后再处理乘法运算符：
var sumNumber:uint = (2 + 3) * 4; // uint == 20
您可能会遇到这样的情况：同一个表达式中出现两个或更多个具有相同的优先级的运算符。
在这些情况下，编译器使用&#8220;结合律&#8221;的规则来确定先处理哪个运算符。除了赋值运算符之
外，所有二进制运算符都是&#8220;左结合&#8221;的，也就是说，先处理左边的运算符，然后再处理右
边的运算符。赋值运算符和条件运算符 (?:) 都是&#8220;右结合&#8221;的，也就是说，先处理右边的
运算符，然后再处理左边的运算符。
例如，考虑小于运算符 (&#60;) 和大于运算符 (&#62;)，它们具有相同的优先级。如果将这两个运算符
用于同一个表达式中，那么，由于这两个运算符都是左结合的，因此先处理左边的运算符。
也就是说，以下两个语句将生成相同的输出结果：
trace(3 &#62; 2 &#60; 1); // false
trace((3 &#62; 2) &#60; 1); // false
将首先处理大于运算符，这会生成值 true，因为操作数 3 大于操作数 2。随后，将值 true
与操作数 1 一起传递给小于运算符。下面的代码表示此中间状态：
trace((true) &#60; 1);
小于运算符将值 true 转换为数值 1，然后将该数值与第二个操作数 1 进行比较，这将返回
值 false （因为值 [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=889</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>主要运算符-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=888</link>
		<comments>http://www.jvcj.cn/?p=888#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:02:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[主要运算符
2009年04月01日 星期三  19:29


主要运算符包括那些用来创建 Array 和 Object 字面值、对表达式进行分组、调用函数、实
例化类实例以及访问属性的运算符。
下表列出了所有主要运算符，它们具有相同的优先级。属于 E4X 规范的运算符用 (E4X) 来
表示。



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=888</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>后缀运算符-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=887</link>
		<comments>http://www.jvcj.cn/?p=887#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:01:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[后缀运算符
2009年04月01日 星期三  19:30


后缀运算符只有一个操作数，它递增或递减该操作数的值。虽然这些运算符是一元运算符，
但是它们有别于其它一元运算符，被单独划归到了一个类别，因为它们具有更高的优先级和
特殊的行为。在将后缀运算符用作较长表达式的一部分时，会在处理后缀运算符之前返回表
达式的值。例如，下面的代码说明如何在递增值之前返回表达式 xNum++ 的值：
var xNum:Number = 0;
trace(xNum++); // 0
trace(xNum); // 1
下表列出了所有的后缀运算符，它们具有相同的优先级：
运算符执行的运算
[] 初始化数组
{x:y} 初始化对象
() 对表达式进行分组
f(x) 调用函数
new 调用构造函数
x.y x[y] 访问属性
&#60;&#62;&#60;/&#62; 初始化 XMLList 对象 (E4X)
@ 访问属性 (E4X)
:: 限定名称 (E4X)
.. 访问子级 XML 元素 (E4X)
运算符执行的运算
++ 递增（后缀）
&#8211; 递减（后缀）



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=887</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>一元运算符-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=886</link>
		<comments>http://www.jvcj.cn/?p=886#comments</comments>
		<pubDate>Fri, 14 Aug 2009 13:00:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[一元运算符
2009年04月01日 星期三  19:30



一元运算符只有一个操作数。这一组中的递增运算符 (++) 和递减运算符 (&#8211;) 是&#8220;前缀运算
符&#8221;，这意味着它们在表达式中出现在操作数的前面。前缀运算符与它们对应的后缀运算符
不同，因为递增或递减操作是在返回整个表达式的值之前完成的。例如，下面的代码说明如
何在递增值之后返回表达式 ++xNum 的值：
var xNum:Number = 0;
trace(++xNum); // 1
trace(xNum); // 1
下表列出了所有的一元运算符，它们具有相同的优先级：
运算符执行的运算
++ 递增（前缀）
&#8211; 递减（前缀）
+ 一元 +
- 一元 &#8211; （非）
! 逻辑&#8220;非&#8221;
~ 按位&#8220;非&#8221;
delete 删除属性
typeof 返回类型信息
void 返回 undefined 值




]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=886</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>乘法运算符-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=885</link>
		<comments>http://www.jvcj.cn/?p=885#comments</comments>
		<pubDate>Fri, 14 Aug 2009 12:59:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[乘法运算符
2009年04月01日 星期三  19:31


乘法运算符具有两个操作数，它执行乘、除或求模计算。
下表列出了所有的乘法运算符，它们具有相同的优先级：
运算符执行的运算
* 乘法
/ 除法
% 求模



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=885</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>加法运算符-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=884</link>
		<comments>http://www.jvcj.cn/?p=884#comments</comments>
		<pubDate>Fri, 14 Aug 2009 12:58:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[加法运算符
2009年04月01日 星期三  19:31


加法运算符有两个操作数，它执行加法或减法计算。下表列出了所有加法运算符，它们具有
相同的优先级：
按位移位运算符
按位移位运算符有两个操作数，它将第一个操作数的各位按第二个操作数指定的长度移位。
下表列出了所有按位移位运算符，它们具有相同的优先级：
运算符执行的运算
+ 加法
- 减法



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=884</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>按位移位运算符-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=883</link>
		<comments>http://www.jvcj.cn/?p=883#comments</comments>
		<pubDate>Fri, 14 Aug 2009 12:57:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[按位移位运算符
2009年04月01日 星期三  19:32


按位移位运算符有两个操作数，它将第一个操作数的各位按第二个操作数指定的长度移位。
下表列出了所有按位移位运算符，它们具有相同的优先级：
运算符执行的运算
&#60;&#60; 按位向左移位
&#62;&#62; 按位向右移位
&#62;&#62;&#62; 按位无符号向右移位



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=883</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关系运算符-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=882</link>
		<comments>http://www.jvcj.cn/?p=882#comments</comments>
		<pubDate>Fri, 14 Aug 2009 12:56:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[关系运算符
2009年04月01日 星期三  19:32


关系运算符有两个操作数，它比较两个操作数的值，然后返回一个布尔值。下表列出了所有
关系运算符，它们具有相同的优先级：
运算符执行的运算
&#60; 小于
&#62; 大于
&#60;= 小于或等于
&#62;= 大于或等于
as 检查数据类型
in 检查对象属性
instanceof 检查原型链
is 检查数据类型



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=882</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>等于运算符-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=881</link>
		<comments>http://www.jvcj.cn/?p=881#comments</comments>
		<pubDate>Fri, 14 Aug 2009 12:55:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[等于运算符
2009年04月01日 星期三  19:33


等于运算符有两个操作数，它比较两个操作数的值，然后返回一个布尔值。下表列出了所有
等于运算符，它们具有相同的优先级：
运算符执行的运算
== 等于
!= 不等于
=== 严格等于
!== 严格不等于



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=881</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>按位逻辑运算符-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=880</link>
		<comments>http://www.jvcj.cn/?p=880#comments</comments>
		<pubDate>Fri, 14 Aug 2009 12:54:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[按位逻辑运算符
2009年04月01日 星期三  19:33


按位逻辑运算符有两个操作数，它执行位级别的逻辑运算。按位逻辑运算符具有不同的优先
级；下表按优先级递减的顺序列出了按位逻辑运算符：
运算符执行的运算
&#38; 按位&#8220;与&#8221;
^ 按位&#8220;异或&#8221;
&#124; 按位&#8220;或&#8221;



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=880</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>逻辑运算符-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=879</link>
		<comments>http://www.jvcj.cn/?p=879#comments</comments>
		<pubDate>Fri, 14 Aug 2009 12:53:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[逻辑运算符
2009年04月01日 星期三  19:34


逻辑运算符有两个操作数，它返回布尔结果。逻辑运算符具有不同的优先级；下表按优先级
递减的顺序列出了逻辑运算符：
运算符执行的运算
&#38;&#38; 逻辑&#8220;与&#8221;
&#124;&#124; 逻辑&#8220;或&#8221;



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=879</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>条件运算符-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=878</link>
		<comments>http://www.jvcj.cn/?p=878#comments</comments>
		<pubDate>Fri, 14 Aug 2009 12:52:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[条件运算符
2009年04月01日 星期三  19:34


条件运算符是一个三元运算符，也就是说它有三个操作数。条件运算符是应用 if..else 条
件语句的一种简便方法。
运算符执行的运算
?: 条件



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=878</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>赋值运算符-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=877</link>
		<comments>http://www.jvcj.cn/?p=877#comments</comments>
		<pubDate>Fri, 14 Aug 2009 12:51:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[赋值运算符
2009年04月01日 星期三  19:35


赋值运算符有两个操作数，它根据一个操作数的值对另一个操作数进行赋值。下表列出了所
有赋值运算符，它们具有相同的优先级：
运算符执行的运算
= 赋值
*= 乘法赋值
/= 除法赋值
%= 求模赋值
+= 加法赋值
-= 减法赋值
&#60;&#60;= 按位向左移位赋值
&#62;&#62;= 按位向右移位赋值
&#62;&#62;&#62;= 按位无符号向右移位赋值
&#38;= 按位&#8220;与&#8221;赋值
^= 按位&#8220;异或&#8221;赋值
&#124;= 按位&#8220;或&#8221;赋值



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=877</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>条件语句-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=876</link>
		<comments>http://www.jvcj.cn/?p=876#comments</comments>
		<pubDate>Fri, 14 Aug 2009 12:50:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[条件语句
2009年04月01日 星期三  19:35


ActionScript 3.0 提供了三个可用来控制程序流的基本条件语句。
if..else
if..else 条件语句用于测试一个条件，如果该条件存在，则执行一个代码块，否则执行替代
代码块。例如，下面的代码测试 x 的值是否超过 20，如果是，则生成一个 trace() 函数，
否则生成另一个 trace() 函数：
if (x &#62; 20)
{
trace(&#34;x is &#62; 20&#34;);
}
else
{
trace(&#34;x is &#60;= 20&#34;);
}
如果您不想执行替代代码块，可以仅使用 if 语句，而不用 else 语句。



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=876</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>if..else if-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=875</link>
		<comments>http://www.jvcj.cn/?p=875#comments</comments>
		<pubDate>Fri, 14 Aug 2009 12:49:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[if..else if
2009年04月01日 星期三  19:36


可以使用 if..else if 条件语句来测试多个条件。例如，下面的代码不仅测试 x 的值是否超
过 20，而且还测试 x 的值是否为负数：
if (x &#62; 20)
{
trace(&#34;x is &#62; 20&#34;);
}
else if (x &#60; 0)
{
trace(&#34;x is negative&#34;);
}
如果 if 或 else 语句后面只有一条语句，则无需用大括号括起后面的语句。例如，下面的代
码不使用大括号：
if (x &#62; 0)
trace(&#34;x is positive&#8221;);
else if (x &#60; 0)
trace(&#34;x is negative&#34;);
else
trace(&#34;x is 0&#34;);
但是，Adobe 建议您始终使用大括号，因为以后在缺少大括号的条件语句中添加语句时，可能
会出现意外的行为。例如，在下面的代码中，无论条件的计算结果是否为 true，positiveNums
的值总是按 1 递增：
var x:int;
var positiveNums:int = 0;
if (x &#62; 0)
trace(&#34;x is positive&#34;);
positiveNums++;
trace(positiveNums); [...]]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=875</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>switch-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=874</link>
		<comments>http://www.jvcj.cn/?p=874#comments</comments>
		<pubDate>Fri, 14 Aug 2009 12:48:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[switch
2009年04月01日 星期三  19:36


如果多个执行路径依赖于同一个条件表达式，则 switch 语句非常有用。它的功能大致相当
于一系列 if..else if 语句，但是它更便于阅读。switch 语句不是对条件进行测试以获得
布尔值，而是对表达式进行求值并使用计算结果来确定要执行的代码块。代码块以 case 语
句开头，以 break 语句结尾。例如，下面的 switch 语句基于由 Date.getDay() 方法返回的
日期值输出星期日期：
var someDate:Date = new Date();
var dayNum:uint = someDate.getDay();
switch(dayNum)
{
case 0:
trace(&#34;Sunday&#34;);
break;
case 1:
trace(&#34;Monday&#34;);
break;
case 2:
trace(&#34;Tuesday&#34;);
break;
case 3:
trace(&#34;Wednesday&#34;);
break;
case 4:
trace(&#34;Thursday&#34;);
break;
case 5:
trace(&#34;Friday&#34;);
break;
case 6:
trace(&#34;Saturday&#34;);
break;
default:
trace(&#34;Out of range&#34;);
break;
}



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=874</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>循环-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=873</link>
		<comments>http://www.jvcj.cn/?p=873#comments</comments>
		<pubDate>Fri, 14 Aug 2009 12:47:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[循环
2009年04月01日 星期三  19:37


循环语句允许您使用一系列值或变量来反复执行一个特定的代码块。Adobe 建议您始终用
大括号 ({}) 来括起代码块。尽管您可以在代码块中只包含一条语句时省略大括号，但是就像
在介绍条件语言时所提到的那样，不建议您这样做，原因也相同：因为这会增加无意中将以
后添加的语句从代码块中排除的可能性。如果您以后添加一条语句，并希望将它包括在代码
块中，但是忘了加必要的大括号，则该语句将不会在循环过程中执行。
for
for 循环用于循环访问某个变量以获得特定范围的值。必须在 for 语句中提供 3 个表达式：
一个设置了初始值的变量，一个用于确定循环何时结束的条件语句，以及一个在每次循环中
都更改变量值的表达式。例如，下面的代码循环 5 次。变量 i 的值从 0 开始到 4 结束，输
出结果是从 0 到 4 的 5 个数字，每个数字各占 1 行。
var i:int;
for (i = 0; i &#60; 5; i++)
{
trace(i);
}



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=873</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>for..in-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=872</link>
		<comments>http://www.jvcj.cn/?p=872#comments</comments>
		<pubDate>Fri, 14 Aug 2009 12:46:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[for..in
2009年04月01日 星期三  19:37


for..in 循环用于循环访问对象属性或数组元素。例如，可以使用 for..in 循环来循环访问
通用对象的属性（不按任何特定的顺序来保存对象的属性，因此属性可能以看似随机的顺序
出现）：
var myObj:Object = {x:20, y:30};
for (var i:String in myObj)
{
trace(i + &#34;: &#34; + myObj[i]);
}
// 输出：
// x: 20
// y: 30
还可以循环访问数组中的元素：
var myArray:Array = [&#34;one&#34;, &#34;two&#34;, &#34;three&#34;];
for (var i:String in myArray)
{
trace(myArray[i]);
}
// 输出：
// one
// two
// three
如果对象是自定义类的一个实例，则除非该类是动态类，否则将无法循环访问该对象的属
性。即便对于动态类的实例，也只能循环访问动态添加的属性。



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=872</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>for each..in-AcrionScript3&#124;as3</title>
		<link>http://www.jvcj.cn/?p=871</link>
		<comments>http://www.jvcj.cn/?p=871#comments</comments>
		<pubDate>Fri, 14 Aug 2009 12:45:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ActionScript3]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[for each..in
2009年04月01日 星期三  19:38


for each..in 循环用于循环访问集合中的项目，它可以是 XML 或 XMLList 对象中的标
签、对象属性保存的值或数组元素。例如，如下面所摘录的代码所示，您可以使用 for
each..in 循环来循环访问通用对象的属性，但是与 for..in 循环不同的是，for each..in
循环中的迭代变量包含属性所保存的值，而不包含属性的名称：
var myObj:Object = {x:20, y:30};
for each (var num in myObj)
{
trace(num);
}
// 输出：
// 20
// 30
您可以循环访问 XML 或 XMLList 对象，如下面的示例所示：
var myXML:XML = &#60;users&#62;
&#60;fname&#62;Jane&#60;/fname&#62;
&#60;fname&#62;Susan&#60;/fname&#62;
&#60;fname&#62;John&#60;/fname&#62;
&#60;/users&#62;;
for each (var item in myXML.fname)
{
trace(item);
}
/* 输出
Jane
Susan
John
*/
还可以循环访问数组中的元素，如下面的示例所示：
var myArray:Array = [&#34;one&#34;, &#34;two&#34;, &#34;three&#34;];
for each (var item in myArray)
{
trace(item);
}
// 输出：
// one
// two
// three
如果对象是密封类的实例，则您将无法循环访问该对象的属性。即使对于动态类的实例，也
无法循环访问任何固定属性（即，作为类定义的一部分定义的属性）。



]]></description>
		<wfw:commentRss>http://www.jvcj.cn/?feed=rss2&amp;p=871</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
