ActionScript3从零基础学习类Word下载.docx

上传人:b****2 文档编号:612556 上传时间:2023-04-29 格式:DOCX 页数:30 大小:38.15KB
下载 相关 举报
ActionScript3从零基础学习类Word下载.docx_第1页
第1页 / 共30页
ActionScript3从零基础学习类Word下载.docx_第2页
第2页 / 共30页
ActionScript3从零基础学习类Word下载.docx_第3页
第3页 / 共30页
ActionScript3从零基础学习类Word下载.docx_第4页
第4页 / 共30页
ActionScript3从零基础学习类Word下载.docx_第5页
第5页 / 共30页
ActionScript3从零基础学习类Word下载.docx_第6页
第6页 / 共30页
ActionScript3从零基础学习类Word下载.docx_第7页
第7页 / 共30页
ActionScript3从零基础学习类Word下载.docx_第8页
第8页 / 共30页
ActionScript3从零基础学习类Word下载.docx_第9页
第9页 / 共30页
ActionScript3从零基础学习类Word下载.docx_第10页
第10页 / 共30页
ActionScript3从零基础学习类Word下载.docx_第11页
第11页 / 共30页
ActionScript3从零基础学习类Word下载.docx_第12页
第12页 / 共30页
ActionScript3从零基础学习类Word下载.docx_第13页
第13页 / 共30页
ActionScript3从零基础学习类Word下载.docx_第14页
第14页 / 共30页
ActionScript3从零基础学习类Word下载.docx_第15页
第15页 / 共30页
ActionScript3从零基础学习类Word下载.docx_第16页
第16页 / 共30页
ActionScript3从零基础学习类Word下载.docx_第17页
第17页 / 共30页
ActionScript3从零基础学习类Word下载.docx_第18页
第18页 / 共30页
ActionScript3从零基础学习类Word下载.docx_第19页
第19页 / 共30页
ActionScript3从零基础学习类Word下载.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

ActionScript3从零基础学习类Word下载.docx

《ActionScript3从零基础学习类Word下载.docx》由会员分享,可在线阅读,更多相关《ActionScript3从零基础学习类Word下载.docx(30页珍藏版)》请在冰点文库上搜索。

ActionScript3从零基础学习类Word下载.docx

trace("

这是写的第一个类"

);

在d:

\exam下建立一个FLA文件,在第一帧写如下代码:

importnet.smilecn.MyClass;

varmyClass:

MyClass=newMyClass();

那么在输出面板里就会输出“这是写的第一个类”。

•importnet.smilecn.MyClass:

导入写的类(类在使用前要导入net.smilecn是包名,MyClass是类名)。

•varmyClass:

MyClass=newMyClass():

实例化MyClass这个类(实例化的时候会执行构造函数,那么就会执行trace这句代码)。

成员常量、变量和方法

首先看一段代码:

publicconstPI:

Number=3.1415926;

publicvarr:

Number;

privatevars:

}

在前面的基础上增加了几行代码,其中:

const是定义常量,var是定义变量,所谓的常量就是不能改变的量,变量就是能够改变的量;

public、private是属性关键字。

在ActionScript3.0中属性关键字有这样几个:

•public:

指定类、变量、常量或方法可用于任何调用者。

•private:

指定变量、常量或方法仅可供声明或定义它的类使用。

•protected:

指定变量、常量、方法或命名空间只可用于定义它的类及该类的任何子类。

•internal:

指定类、变量、常量或函数可用于同一包中的任何调用者。

下面主要说明public、private这两个属性关键字。

从字面上理解public是公共的意思,说简单点就是任何地方都可以调用;

private是私有的意思,就是说只有这个类中才可以调用。

举例说明,在前面用的FLA文件中的第一帧加上这个的代码:

myClass.r=3;

//正确

myClass.s=18;

//错误

可以看到因为r声明为public,所以在外部调用是正确的,s声明为private,所以不直接在外部访问s这个变量,这就是public和private的区别。

如果要在外部改变s的值,则可以修改MyClass类,如下:

publicfunctionsetSValue(value:

Number):

void{

s=value;

这样通过一个公共方法(就是函数)设置了s的值,可以在FLA文件中调用:

myClass.setSValue(18);

当然跟其它语言一样,也可以用get和set方法来读取或写入private变量的值:

publicfunctionMyClass(){

publicfunctionsetsValue(value:

void{

publicfunctiongetsValue():

Number{

returns;

在调用的时候就可以用这样的语句了:

myClass.sValue=18;

//(当使用过set后可以这样操作)

vara=myClass.sValue;

//(当使用过get后可以这样操作)

 

继承

继承是指一种代码重用的形式,允许程序员基于现有类开发新类。

现有类通常称为“基类”或“超类”,新类通常称为“子类”。

importnet.smilecn.MyClass;

//类在使用之前要先导入

publicclassMySubClassextendsMyClass{

publicfunctionMySubClass(){

Pi:

"

PI);

//正确

trace("

r:

r);

s:

s);

//错误

}

发现这个类比之前写的类多了“extends”这个一个关键字。

这个关键字的作用就是说明,MySubClass类是继承MyClass类的,继承之后就可以使用MyClass这个类里的变量和方法了,这样就达到代码重用的目的。

例如,现在要写关于若干个球的类,有足球、篮球、排球等,那么可以先找出这些的共性,先写一个球的类,然后再继承这个球的类写出若干个球的类。

由于相同的东西写在球的类中了,这就达到了代码重用。

可以看出,PI,r,s是在MyClass这个类中定义的变量,那么由于MySubClass继承了MyClass,所以MySubClass也能使用这些变量。

但值得注意的是,public和protected可以在子类中使用,而private则不行。

所以这里PI和r可以使用,s不能用,并且子类在构造的时候也会执行基类的构造方法。

改一下FLA文件的代码:

importnet.smilecn.MySubClass;

varmySubClass:

MySubClass=newMySubClass();

mySubClass.r=3;

在输出面板会输出:

这是写的第一个类

PI:

3.1415926

NaN

注意:

标有错误的那句代码要去掉,不然会报错。

下节继续讲解继承.

(编辑:

非熊)

-类的继承二

当前位置:

主页>

AS入门>

作者:

arrowyoung发表于:

2009-08-29Tag:

菜鸟教程继承

在上节中,我们介绍到了继承,继承在我们的实际应用中是用的比较多的一种方式。

上节的继承是继承我们自己定义的类,如果要用到影片和类关联起来,我们可能会更多的去继承AS3中已有的类——Sprite和MovieClip;

MovieClip这个类我们在2.0中就经常用到,就是影片剪辑,Sprite是什么了,其实就是一个没有帧的MovieClip,在没有动画的情况下我们会更多的使用Sprite,来看一段代码:

packagenet.smilecn{importflash.display.Sprite;

publicclassMySpriteextendsSprite{publicfunctionMySprite(){graphics.beginFill(0xFFCC00);

graphics.drawCircle(40,40,40);

}}}

现在我们建立一个MySprite的类(注意保存的AS文件名一定要跟类名一样),因为它是继承的Sprite类,所以我们可以使用graphics来画图,这里我们画了一个圆。

要使用这个类,我们同样要在帧上加一些代码:

importnet.smilecn.MySprite;

varmySprite:

MySprite=newMySprite();

addChild(mySprite);

mySprite.x=100;

mySprite.y=100;

这里首先我们还是建一个实例,名字叫做mySprite,接下来我们用到了这句:

addChild(mySprite);

addChild相当于2.0里面把库中的元件载入到场景中,用了addChild后我们画的那个圆就显示在场景中了,与之对应的是removeChild,是从场景中删除

接下来

mySprite.x=100;

是设置坐标位置,因为是继承的Sprite,因为Sprite有x、y属性,所以MySprite也有了(注意x,y相当于2.0里面的_x和_y)

上面的代码MySprite是用代码画的一个图形,有很多图形我们不可能都用代码去画,这样就失去FLASH的主要功能了,我们还可以把库中的元件链接到MySprite这个类中。

我们新建一个MC,在库中在这个MC上点右键,点链接,会出现一个对话框,将―为ActionScript导出‖打上勾,在上面类的后面填上要链接的类,这里我们填上:

net.smilecn.MySprite;

基类那里我们填上:

flash.display.Sprite

然后再发布看看,会发现不仅有刚才画的圆,我们在刚才的那个MC里画任何东西都会在里面,这样就做到了元件和类的链接。

在FLASHCS3中还加入了一个文档类(documentclass)的概念,使用文档类后,我们刚才写帧上面的代码就不用了,直接写在文档类里面,文档类就相当于第一帧的位置,这样我们就不用在FLA文件里写代码了,所有代码都写在AS文件里,达到了界面和代码的分离。

现在在建立一个类,MainForm.as:

importnet.smilecn.MySprite;

publicclassMainFormextendsSprite{publicfunctionMainForm(){varmySprite:

我们发现刚才第一帧的代码搬到这个类里面来了,那个第一帧的代码就可以全部删除掉

最后在FLA的属性栏中找到文档类,在后面输入类的位置:

net.smilecn.MainForm(注意是包名加类名)

好,现在发布看一下,是不是跟刚才的效果一样。

投稿:

@有疑问:

去艾睿论坛交朋友:

去友吧

-加载库中MC

2009-08-30Tag:

菜鸟教程加载库中MC

上一节中,我们将库中的MC链接到一个类上,达到了类与元件的绑件,那么要完成像2.0一样的效果,将库中的元件载入到场景中是不是也要在MC上链接类了(3.0中没有以前的标识符),如果每个在库中的MC都要链接一个类就麻烦了,其实只需要在类后面起个名字就可以了。

比如我们起个名字叫MyMc,基类就用默认的flash.display.MovieClip(注意在点确定时有个找不到类的警告,不用管它,点确定就可以了),在文档类中这样写:

importflash.display.MovieClip;

publicclassMainFormextendsSprite{publicfunctionMainForm(){varmyMc:

MovieClip=newMyMc();

addChild(myMc);

同样,要播放库中的声音也可以这样做,方法一样,链接在类后面起个名字,比如MySound,基类就用默认的flash.media.Sound

importflash.media.Sound;

varmySound:

Sound=newMySound();

mySound.play();

play方法是播放声音

通过上述方法,我们可以通过代码将库中的元件加载到场景中或播放库中的声音。

反射的方式加载库里的MC

2009-09-01Tag:

反射加载MC

在上一节中我们用到了在库中加载一个元件,我们还有另一个方法来加载一个元件,就是用"

反射"

的方法,反射就是用库中元件的名字(字符串)去得到我们想要的元件,用代码去把它变成一个类.

我们在库中建立两个MC,并用上一节的方法将它们导出,名字分别为:

Mc1和Mc2,我们要将这两个元件加载到场景上,按照上一节的方法,我们应该这样做:

publicclassMainFormextendsSprite{publicfunctionMainForm(){varmc1:

MovieClip=newMc1();

addChild(mc1);

varmc2:

MovieClip=newMc2();

addChild(mc2);

那么如果用反射的方法应该怎样做呢,看下面的代码:

importflash.utils.getDefinitionByName;

publicclassMainFormextendsSprite{publicfunctionMainForm(){varClassReference:

Class=getDefinitionByName("

Mc1"

)asClass;

varinstance:

MovieClip=newClassReference();

addChild(instance);

这段代码只加载了Mc1这个元件,而且我们发现代码比上一种方法更复杂一些,那为什么要使用反射这种方法呢,我们在看一段代码:

publicclassMainFormextendsSprite{publicfunctionMainForm(){for(vari=1;

i<

=2;

i++){varClassReference:

Mc"

+i)asClass;

}}}}

我们发现现在这种写法是不是更简单的一种写法,当库中有名字为Mc1,Mc2,Mc3……这种更多的MC时,我们只需要改变循环变量的范围就可以了.

-事件

事件菜鸟教程

在as3.0中我们用的最多的可能就是"

事件"

,我们会侦听各种事件.

当我们点击一个按钮时,在2.0中我们可能会用到这样的语句:

_btn.onPress=function(){};

当然后我们也可以用addEventListener来侦听一个点击事件.在3.0中我们一律用addEventListener这种加侦听的方式来完成.

_btn.addEventListener(MouseEvent.CLICK,btnClickHandler);

functionbtnClickHandler(event:

MouseEvent):

void{//点击后代码}

这是一个单击事件,基本上我们用到的系统里的所有类都会有事件,在帮助文档中我们可以找到,我们可以很方便的使用这些事件.

我们现在把上一节中我们用到的代码稍加一下变动:

importflash.events.MouseEvent;

instance.name="

mc"

+i;

instance.addEventListener(MouseEvent.CLICK,insClickHandler);

}}privatefunctioninsClickHandler(event:

void{trace("

你点击了:

,event.currentTarget.name);

event.currentTarget是指当前侦听的对像,加个name属性就是这个对像的名字,这里MouseEvent就是鼠标事件;

Sprite、MovieClip、SimpleButton、Button这一些都可以加鼠标事件侦,当然不止这一些(注:

SimpleButton是元件按钮,Button是组件按钮)

MouseEvent.CLICK这个实际上是一个常量,代表着"

click"

这个字符串,从字面上我们就可以看出这个是单击的意思,通常这些事件其实都可以字面上看到意思,像MouseEvent.MOUSE_DOWN就是鼠标按下事件,值得一提的是3.0里面加上了双击事件,是MouseEvent.DOUBLE_CLICK,不过使用双击还要使doubleClickEnabled为true才行.

我们不可能从别人那里知道一个类有多少种事件,所以帮助是最好的老师,我们学习AS3最好的教程其实就是帮助,所以要勤看帮助,这样才能进步更快.

下节继续讲解事件侦听.

事件侦听

2009-09-03Tag:

事件侦听菜鸟教程

在上一节中我们介绍了侦听,要知道我们可能经常会用到侦听,所以我们会写很多个addEventListener,经常有些侦听我们用过一次后可以就不会再用了,那么为了节省资源,我们要将这些侦听删除掉,要侦除侦听这们用这样的方法:

instance.addEventListener(MouseEvent.CLICK,insClickHandler);

//添加侦听instance.removeEventListener(MouseEvent.CLICK,insClickHandler);

//删除侦听

这里我们用removeEventListener就可以将侦听删除掉,我们在编程过程中,已经不用的侦听我们应该及时删除掉以节省资源.现在我们来看一个小例子,这个例子的功能是有两个按钮,点击其中一个自己变成不可点击,另一个变成可点击状态.

importflash.display.SimpleButton;

publicclassMainFormextendsSprite{publicfunctionMainForm(){_btn1.addEventListener(MouseEvent.CLICK,btnClickHandler);

privatefunctionbtnClickHandler(event:

_btn1.addEventListener(MouseEvent.CLICK,btnClickHandler);

_btn2.addEventListener(MouseEvent.CLICK,btnClickHandler);

event.currentTarget.removeEventListener(MouseEvent.CLICK,btnClickHandler);

在我们上一

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2