有人有flash2.0下载可以给我么!

FLASH2.0学习教程 - fayewang的专栏
- 博客频道 - CSDN.NET
3264人阅读
&&&Flash教学 & Action应用 AS2.0面向对象编程基础(一)在flashmx2004专业版中编程&&& 打开你的flash,用Ctrl+N就可以打开New document对话框。flash2004现在不仅可以编辑Flash文件(*.fla),而且还能编辑ActionScript文件(*.as),Flash javascript文件(*.jsfl),Flash工程文件(*.flp)文件。screen.width-430)this.width=screen.width-430 align=center border=0&& 让我们来建立第一个flash 应用程序了,给大家对在flash mx 2004专业版有一个大概的了解.1.建立一个ActionScript文件(ActionScript File),名为FirstClass.,然后你就可以看到.as的编辑框了,键入如下代码:class FirstClass&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& //(1){&&&&&&& private var myData:Number=10;&&&&&&&&&&&&&&&&&& //(2)&&&& &&&&&&& public& function traceMyData():Void&&&&&&&&&&&& //(3)&&&&&&& {&&&&&&&&&&&&&&& trace(myData=+myData);&&&&&&& }}然后选择好路径,我这里是存在G:/tutorial下面,存成FirstClass.as. 这是我们在flash mx 2004中定义的第一个类.为了给大家一个感性的认识, 简单地介绍一下这个类的结构. 第(1)行是类头, 由class关键字定义一个类, 注意存成.as文件的时候,文件名应与类名一样.类头下面的全是类体了.第(2)行是类的数据成员myData的定义,接触过AS1.0的读者请注意:其中private是访问限定字,Number表示数据类型为数字.这与AS1.0有不同之处.第(3)行定义了一个成员函数,traceMyData用来打印myData的值,接触过AS1.0的读者请注意:其中public是访问限定字,Void为返回数据类型,这里的Void表示没有返回值.2.用Ctrl+N建立一个flash文档(Flash document),取名为myFirst2004Program. 3.用F9打开ActionScript编辑面板, 在专业版里面, 没有普通编辑模式,只存在专家模式了.4.点击Action面板右上角的按钮screen.width-430)this.width=screen.width-430 align=center border=0&,选择Preferences定义Action面板的参数和选项(Ctrl+U).如图所示即为Preferences面板.screen.width-430)this.width=screen.width-430 align=center border=0&其中有一个重要的设置就是AS类的路径设置.5.选择Preferences面板中的ActionScript标签,然后再点选Language里面的ActionScript 2.0 Settings..,就会弹出ActionScript Setting对话框.如下图所示: screen.width-430)this.width=screen.width-430 align=center border=0&默认的有一个$(LocalData)/Classes表示你的flashMX2004安装路径下面的内建类的路径.还有一个.号,表示当前工作路径.假如读者是一个java爱好者,配置过java的SDK,那对这个应该不会陌生了,这与java的classpath设定完全是一个道理.6.选择classpath下面的screen.width-430)this.width=screen.width-430 align=center border=0&号, 你就可以增加一个类路径了.选择刚才存放的G:/tutorial,你就成功地添加了一个类路径,不管你的fla文件存在哪儿, 它都能导入到你刚才定义的FirstClass类. 当然,假如你把myFirst2004Program.fla也存在G:/tutorial下面,那就大可不必定义类路径. 因为通过当前工作路径.就可以导入FirstClass类了.7.在myFirst2004Program.fla文件的第一帧,编写如下代码:var myInstance:FirstClass=new FirstClass();&&&&&&& //(1)myInstance.traceMyData();&&&&&&&&&&&&&&&&&&&&&&&&&& //(2)其中第(1)行, 新建FirstClass类的一个对象,名为myFirstClass.第二行调用myFirstClass的traceMyData成员函数. 8.用Ctrl+Enter,测试一下.output窗口就会出现myData=10.是不是很新奇呢?& //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////&&&&&&&&&&&&&&&&&&&&&&&& & AS2.0面向对象编程基础(二)对象和类(Object & Class)什么是对象呢? 世界上所有的特定的物体都是对象,包括可见的和不可见的,形象的和抽象的.你楼下的停的那辆自行车是一个对象, 大街上的一个漂亮mm是一个对象, 天上的一朵云是一个对象,我做的一道数学题也是一个对象.每个对象都有自己的属性和方法.自行车有型号,高度等属性, 也有骑动的方法;mm有姓名, 身高, 体重的属性,有走路,挥手, 跳舞,抛媚眼等方法....那什么是类呢?先来想想这个,街上的人多的是,有一些mm,有一些王子,还有一群恐龙和一堆青蛙.每一个mm、王子、恐龙、青蛙都是一个对象,他们有什么共性呢? 他们都是人!(有人要提出非议:恐龙和青蛙不是人.AOL:faint.....)。他们属于人类,不管他们长得好看还是难看, 他们都有鼻子有眼,会说话, 最重要的是会制造生产工具(上哲学课?)。类是所有有相同共性的对象的总称,当然对象的数量可以为无限。 人类是所有会制造劳动工具的生物的总称,所以人是一个类, 而每一个具体的人是一个对象。还有一种说法更形象点儿, 类是建立对象的模型,对象是类的实例。 想像一下现在你要用你的双手来做一个人的泥像。最好的方法就是用一个模具, 用一次就可以造出一个人泥像来。每一个泥像等同于一个对象, 而这个模具等同于一个类了.&&&& 下面我们来设计一个Person类.class Person{&&&&&&& //constructor&&&&&&& public function Person(n:String,a:Number,tel:Number)&&&&&&& {&&&&&&&&&&&&&&& name=n;&&&&&&&&&&&&&&& age=a;&&&&&&&&&&&&&&& telNum=&&&&&&& }&&&&&&& &&&&&&& //methods&&&&&&& public function getName():String&&&&&&& {&&&&&&&&&&&&&&&&&&&&&& }&&&&&&& &&&&&&& public function getAge():Number&&&&&&& {&&&&&&&&&&&&&&&&&&&&&& }&&&&&&& &&&&&&& public function getTelNum():Number&&&&&&& {&&&&&&&&&&&&&&& return telN&&&&&&& }&&&&&&& &&&&&&& public function saySomeThing():Void&&&&&&& {&&&&&&&&&&&&&&& trace(I am a Person named +name);&&&&&&&&&&&&&&& trace(I am +age+ years old);&&&&&&&&&&&&&&& trace(My telephone number is +telNum);&&&&&&&&&&&&&&& trace(==================================);&&&&&&& }&&&&&&& &&&&&&& //properties&&&&&&& private var name:S&&&&&&& private var age,telNum:N}在AS2.0声明类的一般形式为:&&&&&&& class ClassName &&&&&&& {&&&&&&&&& // 类体&&&&&&& }在类体定义数据成员(由于其经常表示类的属性, 所以一般称为属性)和成员函数(由于其经常表示类的方法,所以一般称为方法).一般情况下,属性是声明为私有类型,用关键字private来定义。这样的话,只有类的成员才能访问到该属性。有其它面向对象语言如c++,c#,java等开发经验的读者请注意,这里的privte其实相当于这些语言的protected,另外这个private也通过ASSetPropFlag函数来模拟的,有一些bug.这些将在以后的篇章中再详谈.而类的方法,则一般声明为公有类型,用关键字public来定义。该类的所有对象都能使用该方法。这个Person类有如下属性,分别表示一个人的姓名,年龄,还有联系电话.&&&&&&& &&&&&&& private var name:S&&&&&&& private var age,telNum:N这个类的方法为:&&&&&&& public function getName():String&&&&&&& public function getAge():Number&&&&&&& public function getTelNum():Number&&&&&&& public function saySomeThing():Void创建对象把上面的类存成Person.as之后,新建一个aolWaterflier.fla文件就可以创建该类的对象了。 创建对象要用到关键字new方法如下:var waterflier:Person=new Person(waterfiler,19,);var aol:Person=new Person(AOL,22,);其中waterflier和aol是两个变量, 它的类型是Person. Person类在用new关键字创建一个对象的时候,你可以把这个对象看做是一把勺子,一个变量可以看做是一只手,而你要使得你的变量按照用户希望的方式来随时控制或访问这个对象.你可以握住这个勺子的柄来实现.对象也有一个这样的柄,而且每次建立一个对象的时候会产生不同的柄,这个柄就叫做句柄,它是对象的一个引用.而你把这个引用赋值给变量waterflier,aol.那么这两个变量,就拥有了对两个不同的Person类的对象的引用.那么你就可以使用该对象的属性和方法了.aol.saySomeThing();trace(waterflier.getName()+ +waterflier.getAge()+ +waterflier.getTelNum());构造函数注意到类体有一开始有一个名为Person的函数。它就是该类的构造函数,它是一个特殊的成员函数。构造函数的作用是在创建该类的对象初始化对象中的字段。构造aol对象的时候,把AOL赋给n,22赋给a,赋给tel.然后通过n,a,tel初始化name,age,telNum.注意:在声明构造函数时, 不能有返回值.在AS2.0中,不像其它的面向对象的语言中,构造函数可以重载。假如你定义了两个或者两个以上名为Person的构造函数时,编译就会提示出错。Note:1.创建对象的时候,一定要指明对象的数据类型,这里为Person类. 假如你没有定义数据类型的话,private所声明的属性就可以访问. 如: var waterflier=new Person(waterfiler,19,);trace(waterflier.name+ +waterflier.age+ +waterflier.telNum); 这样封装就失去了实际意义了. <font face="Courier New" color="#.命名的一些约定:(1)类名一般为名词(Person)或者形容词加名词(FirstClass),表达要精准.每个词的首个字母要大写.(2)变量名一般也为名词(name,age)或者形容词加名词,一般第一个词的首个字母小写,接着的首个字母要大写(telNum).(3)函数名一般为动宾结构,一般第一个词的首个字母小写,接着的首个字母要大写(getName,getAge,getTelNum,saySomeThing).//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////&&&&AS2.0面向对象编程基础(三)静态属性和静态方法(Static Property & Static Method)上一节讲了,创建一个对象就会使该对象初始化一些具体的属性值。Person类举了两个实例, 一个是waterflier,还有一个aol.在创建waterflier对象和aol对象的时候,分别初始化了他们的属性。那么有时候,我的Person类的各个对象有一个所有对象都能访问的属性, 比如说某公司招人,这个公司已经招人的总数totalPersonnels则为这样的一个例子。 当然你可以这样实现:class Person{&&& //other properties and methods omitted...public function getTotalPersonnels():Number{&&&&&&& return totalP}public function incrementEmploy(){&&&&&&& totalPersonnels++;}private var totalPersonnels:Number=0;}但是公司每招一个人都得调用所有的Person类的对象中的incrementEmploy()方法, 这样假如对象建了很多, 就会很麻烦。在AS2.0中引进了静态属性.则可以这样实现:class Person{&&& //other properties and methods omitted...public function getTotalPersonnels():Number{&&&&&&& return totalP}public function incrementEmploy(){&&&&&&& totalPersonnels++;}private static var totalPersonnels:Number=0;}静态属性的值由所有实例共享,它是属于类的性性,而不是某个具体的实例的属性.静态属性只能由类来访问.你可以把private改成public试试。在一个fla文件用使用trace(Person.totalPersonnels);没有任何错误,但是你建立了一个rei实例的话,用rei的属性来访问就会出错。var rei:Person=new Person();trace(rei.totalPersonnels); 这时编译器就会报错:Static members can only be accessed directly through classes.但是你可以通过getTotalPersonnels方法来访问静态属性。trace(rei.getTotalPersonnels()):下面来看看静态方法,静态方法和静态属性一样是属于类的,而不是属于某个具体对象的。class Person{&&& //other properties and methods omitted...public static function getTotalPersonnels():Number{&&&&&&& return totalP}public static& function incrementEmploy(){&&&&&&& totalPersonnels++;}private static var totalPersonnels:Number=0;}这时你就可以用Person类访问这些方法了,而用其实例rei的方法一样会报刚才的错.trace(Person.getTotalPersonnels());//this is the right access .有一点要注意,静态方法只能访问静态属性。你把totalPeronnels属性的static去掉,然后再用Person.getTotalPersonels()方法访问,就会报错:Instance variables can not be accessed in static functions.这是为什么呢?前面已经说得很清楚了, static所定义的属性是属于类的,而未加static的一般属性是属于具体的实例的.不能用类的方法去访问具体的一个对象的属性.//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////&&&&AS2.0面向对象编程基础(四)获取和设置方法(get/set method)一般的情况下,对象的属性都是设为私有的,它除了对象自身的方法从外部无法访问。那么我们编写代码的时候怎么才能访问到这些属性呢?当然只有通过公有方法来实现了。好的面向对象编辑习惯要求程序员给对象客户提供有效的对私有属性进行操作的公有获取方法和设置方法。这两个方法分别称为get方法和set方法。下面我们以Person类来说明获取和设置方法。class Person{&&&&&&& //get method &&&&&&& public function getName():String&&&&&&& {&&&&&&&&&&&&&&&&&&&&&& }&&&&&&& &&&&&&& //set method&&&&&&& public function setName(newName:String):Void&&&&&&& {&&&&&&&&&&&&&&&& n=newN&&&&& &&&&&&& }&&& &&&&&&& //private property&&&&&&& private var n:S&&&&&&& //others omitted...}&这时你可以新建类的对象,使用它的getName()和setName()方法来获取和设置其私有属性。var peng:Person=new Person();peng.setName(peng);trace(peng.getName());以上是传统的get/set方法,然而传统的方法不是很简洁,获取和设置用了两个函数。其实在AS2.0中有get和set关键字可以实现,获取和设置共用同一个函数名。 把上面的代码写成这样:class Person{&&&&&&& //get method &&&&&&& public function get name():String&&&&&&& {&&&&&&&&&&&&&&&&&&&&&& }&&&&&&& &&&&&&& //set method&&&&&&& public function set name(newName:String):Void&&&&&&& {&&&&&&&&&&&&&&&& n=newN&&&&& &&&&&&& }&&& &&&&&&& //private property&&&&&&& private var n:S&&&&&&& //others omitted...} 这样你就可以使用下面的简单方法来实现获取和设置对象的属性了。 var peng:Person=new Person();peng.name=trace(peng.name);而很多时候名字一旦定下来了,是不能改变的,这就是只读属性,不能写。我们可以只使用get方法,而不用set方法来实现。让我们用一个构造函数来重新定义这个Person类吧。class Person{&&&&&&& //consturctor&&&&&&& public function Person(newName:String)&&&&&&& {&&&&&&&&&&&&&&& n=newN&&&&&&& }&&&&&&& //get method &&&&&&& public function get name():String&&&&&&& {&&&&&&&&&&&&&&&&&&&&&& }&&&&&&& //private property&&&&&&& private var n:S&&&&&&& //others omitted...} 使用方法:var peng:Person=new Person(peng);trace(peng.name);类似的只写属性,那就可以只使用set,而不用get来实现.大家可以自己试试。& //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////&&&&AS2.0面向对象编程基础(五)动态类(dynamic class)一般的我们定义的类, 不能在外部定义基于这个类的对象的方法和属性了. 在AS2.0面向对象编程基础(二)里面我们介绍了一个Person类. 我想为这个类加一个属性:性别(sex).在一个fla文件里, 你试试这样编写:var lei:Person=new Person();lei.sex=测试一下就会报错: There is no property with the name 'sex'.现在我们可以用dynamic关键字,加在class的前面重新定义那个Person类. dynamic class Person{&&&&&&& //constuctor&&&&&&& public function Person(n:String,a:Number,tel:Number)&&&&&&& {&&&&&&&&&&&&&&& name=n;&&&&&&&&&&&&&&& age=a;&&&&&&&&&&&&&&& telNum=&&&&&&& }&&&&&&& &&&&&&& //properties&&&&&&& private var name:String=;&&&&&&& private var age,telNum:N&&&&&&& &&&&&&& //others methods and properties defined external}在这个类里面我们只定义了一个构造函数,三个属性:姓名、年龄和电话。新建一个fla文件。我们可以在外部定义获取这些属性的函数,并且有一个介绍自己的函数。而且可以定义他的性别这个属性。下面是代码:Person.prototype.getName=function():String{&&&&&&& return this.}Person.prototype.getAge=function():Number{&&&&&&& return this.}Person.prototype.getTelNum=function():Number{&&&&&&& return this.telN}Person.prototype.saySomeThing=function():Void{&&&&&&& trace(I am a Person named +this.getName());&&&&&&& trace(I am +this.getAge()+ years old);&&&&&&& trace(My telephone number is +this.getTelNum());&&&&&&& trace(==================================);}var lei:Person=new Person(lei,20,);lei.saySomeThing();lei.sex=trace(And I am a& +lei.sex);注意上面有一个this关键字, 它表示对对象自身的引用,lei对象的this就是指自身, 自身的姓名属性就可以用this.name表示。在output窗口不但不会报错, 而且还会输出:I am a Person named leiI am 20 years oldMy telephone number is ==================================And I am a& male实际上我们最熟悉不过的MovieClip类就是一个动态类, 我们可以随时给MovieClip类定义的对象添加属性,给MovieClip添加方法供具体的对象使用。你可以定义一个MoiveClip.prototype.drawTriangle()方法,那么每个MovieClip对象都可以使用这个方法来画三角形了。MovieClip.prototype.drawTriangle=function():Void{&&&&&&& beginFill (0x0000FF, 50);&&& lineStyle (5, 0xFF00FF, 100);&&& moveTo (200, 200);&&& lineTo (300, 300);&&& lineTo (100, 300);&&& lineTo (200, 200);&&& endFill();}_root.createEmptyMovieClip(myMovieClip,1);myMovieClip.drawTriangle();这时你可就可以看到一个三角形了.:)screen.width-430)this.width=screen.width-430 align=center border=0&&& //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////&&&&AS2.0面向对象编程基础(六)继承(一)(inherit)在说这个之前, 我要郑重地向大家说:It is important!没有继承的语言根本不能称之为一种面向对象的语言, 继承是面象对象最重要的特性。我们把Person类简写成只有一个方法和一个属性的类如下://///////////////&& Person.as&& ///////////////class Person{&&&&&&& //constructor&&&&&&& public function Person(n:String)&&&&&&& {&&&&&&&&&&&&&&& newName=n;&&&&&&& }&&&&&&& &&&&&&& //method&&&&&&& public function get name()&&&&&&& {&&&&&&&&&&&&&&& return newN&&&&&&& }&&&&&&& &&&&&&& //property&&&&&&& private var newName:S}&我们已经定义了一个类型,这时我们有需要定义另一些比较特殊的类型。比如说程序员就是一种特殊的能写程序的人类,而美工就是一种特殊的能做设计的人类。(不好意思,我常年蹲工作室,接触最多的人就是这两种)。程序员有善长的编程语言的特殊属性,写代码的特殊方法;美工有善长的设计软件的特殊属性,设计的特殊方法,这些都是Person类所没有的。我们可以重新定义这两个类,像下下面这样://////////////////&& CodeMan.as&& ///////////////////class CodeMan {&&&&&&& //constructor&&&&&&& public function CodeMan(n:String,l:String)&&&&&&& {&&&&&&&&&&&&&&& newName=n;&&&&&&&&&&&&&&& skilledLanuage=l;&&&&&&& }&&&&&&& &&&&&&& //methods&&&&&&& public function get name()&&& {&&&&&&&&&&& return newN&&& }&&&&&&& public function writeCode():Void&&&&&&& {&&&&&&&&&&&&&&& trace(I am using& +skilledLanuage+ lanuage to write codes);&&&&&&& }&&&&&&& &&&&&&& //properties&&&&&&& private var newName:S&&&&&&& private var skilledLanuage:S}& /////////////////////&& Designer.as&& //////////////////// class Designer{&&&&&&& //rewrite constructor&&&&&&& public function Designer(n:String,s:String)&&&&&&& {&&&&&&&&&&&&&&& newName=n;&&&&&&&&&&&&&&& skilledSoftWare=s;&&&&&&& }&&&&&&& &&&&&&& //methods&&&&&&& public function get name()&&& {&&&&&&&&&& return newN&&& }&&&&&&& public function Design():Void&&&&&&& {&&&&&&&&&&&&&&& trace(I am using& +skilledSoftWare+ to design a web.);&&&&&&& }&&&&&&& &
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:46000次
排名:千里之外
原创:29篇
(2)(1)(1)(4)(7)(5)(1)(1)(2)(6)AS和JS互相调用有个很酷的特性(as2.0)—Flash教程
当前位置: &
AS和JS互相调用有个很酷的特性(as2.0)
来源:ooboy.net 作者:Fdream 日 22:41  点击:
JavaScript和ActionScript互相调用时,其实有个非常好的特性,不过貌似很少有人提到这个 特性:它们之间的数据类型对方均可以识别。因此,你可以通过swf提供的接口来传递对象、数组、字符串等等。不过它们之间传递的参数的值的长度有限制(具体长度还没仔细测试),因此你不能把JavaScript中的一个超大的对象直接传递进去。不过即使是这样,已经非常好用了,看看示例代码:as2 代码:
import&flash.external.*;& //&创建一个行的TextField来显示调用结果& var&t:TextField&=&this.createTextField(’t’,&this.getNextHighestDepth(),&10,&10,&300,&200);&& t.text&=&’ready’;& //&这个是要给JavaScript调用的函数& function&test(obj){& &&&&var&s&=&[];& &&&&for(var&p&in&obj){& &&&&&&&&s.push(p&+&’:&’&+&obj& );& &&&&}& &&&&t.text&=&s.join(’\r\n’);& }& //&添加调用接口& var&testsuc:Boolean&=&ExternalInterface.addCallback("test",&null,&test);& t.text&=&[’test:&’,&testsuc].join(’\n’);& //&调用JavaScript,告诉JavaScript我已经准备好了& ExternalInterface.call(’ready’,&{a:’a&string’,&b:’string&b’});&
JavaScript代码:
var&swfId&=&’call_swf’& function&ready(){& &&&&//&获取flash传递过来的参数& &&&&var&o&=&arguments[0];& &&&&var&s&=&[];& &&&&for(var&p&in&o){& &&&&&&&&s.push([p,&’:&’,&o& ].join(’’));& &&&&}& &&&&//&打印传递进来的对象的内容& &&&&alert(s.join(’\n’));& &&&&& &&&&var&swf&=&document[swfId]&?&document[swfId]&:&window[swfId];& &&&&//&调用flash提供的接口& &&&&swf.test({a:’a&string’,&b:’string&b’});& }&
上一篇:   下一篇:
【】【】【】
 相关文章
 我要点评
免责声明:本站刊载此文不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。对本文有任何异议,请联络:
转载要求:作者及来源信息必需保留。转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印。
Copyright & design.net, All
Rights Reserve 【找网页设计师,当然上网页设计师联盟】 Flash AS2.0 编程范例导航 - 专业书讯 - 蓝色理想
您的位置:  &
& Flash AS2.0 编程范例导航
 Flash AS2.0 编程范例导航
作者: 时间:  文档类型:原创 来自:
本书作者为我站会员,写过不少深入浅出教程,个人博客也以FLASH编程为主,相信为深入学习FLASH编程的一本好书。
本书以Flash 8中文版(专业版)为编程环境,由浅入深地介绍了ActionScript 2.0支持的类、继承、接口和其他通用的面向对象编程(OOP)概念、设计、编写类库的方法及相关设计模式的知识,Flash与后台的通信方法及开发互动游戏的商业案例。
本书介绍了变量、数据类型等基础知识,Flash特有的注册点、路径等特点,使初学者和编程人员能顺利地进行Flash开发
本书实用性强,读者不仅能从书中学到实用的编程经验与技巧,还能利用书中提供的类库,直接用于开发各种应用程序。本书鼓励开发者使用更好的编程结构,减少编码和维护的时间。
本书既适合ActionScript初学者使用,也适合有一定编程基础的学习者进一步深造使用,可作为自学教材和各级培训用教材。
购买地址:
本书以flash 8中文版(专业版)为编程环境,简单介绍了ActionScript 2.0的基础知识,在此基础上,重点介绍了ActionScript 2.0面向对象技术。本书的主要内容包括:
第1章 ActionScript 2.0编程基础通过11个范例重点介绍了ActionScript 2.0的变量、数据类型、表达式、语句等基础知识,并结合flash的特点介绍了常用内置类特别是MovieClip类的使用方法和,如使用onEnterFrame()事件处理函数和setInterval()全局函数创建和清除循环的方法与技巧。介绍了flash特有的一些基本术语,如中心点、路径等。在各个实例中,突出了简单的面向对象的基本术语,如类和实例的区别与联系,为下一章学习面向对象编程技术奠定基础。
第1章还介绍了flash的底层事件处理模型及应用程序的基本结构,这些是后面章节学习各种事件处理和开发应用程序的基础。
第2章 面向对象编程通过15个范例介绍了flash面向对象编程技术,通过这些实例介绍类、属性、方法和事件的概念,并理解私有成员、公有成员和静态成员的区别和联系。介绍了创建自定义类的环境和基本步骤,设置类路径、导入类和包的方法与技巧。
在熟悉面向对象编程的基本语法后,介绍了单例模式、工厂模式等设计模式,通过模式理解抽象类、继承等概念,从而掌握面向对象编程的实际用途。同时,结合flash的特点,介绍了使用EventDispatcher类自定义事件的方法,在类中使用事件处理函数应注意的问题及使用Delegate类指明对象的方法。
本章的最后,介绍了面向对象编程的一些技巧,如this在类中的使用技巧。
&第3章 加载外部文件第3章通过15个实例介绍了flash加载各种外部文件的方法与技巧,前6个实例主要介绍与加载外部文件相关内置类的使用方法,一方面熟悉flash的Sound类、LoadVars类等内置类,另一方面掌握简单的面向过程的加载外部文件方法。
在了解与加载有关的内置类的基础上,介绍使用面向对象编程技术编写加载类库的过程与使用方法,实现加载检测相关的属性、方法和事件,如加载的百分比、加载对象等属性,如加载过程、加载完成和加载错误等事件。本章的最后,介绍了策略模式及其用策略模式管理加载类库的方法,使用策略类使用加载类库的方法。
第4章 开发绘图库主要介绍了flash绘制图形的基本方法,本章的开始介绍了绘制一个简单图形的步骤,进而抽象出flash绘图的基本步骤,即样式的定义、图形的算法及实现绘图。
根据绘图的思路,本章介绍使用面向对象编程技术设计和编写样式类库、图形类库和绘图管理类的过程。在编写绘图类库的过程中,介绍15个具体的绘图范例,包括点、线、形状的绘制,本章最后,介绍扩展类库的方法,例如,绘制各种箭头、坐标的扩展方法。
在图形类库中,主要利用各种数学知识来编写,这些数学知识也是开发游戏等应用程序的基础。
第5章 开发播放器类库介绍发各种播放器的方法与技巧,以命令模式为核心,介绍编写抽象播放器类和各种具体播放器类的过程,以及编写通用的控制播放器的方法。
本章结合第3章的加载类库,通过4个范例介绍了flv播放器、mp3播放器、图片播放器和本地swf播放器的制作方法,其基本过程包括使用XML管理外部文件、用加载类库实现外部文件的加载,用播放器类库实现控制的过程等。
第6章 互动游戏开发是flash在游戏方面的应用,包括本地游戏和简单网络游戏的制作过程。
通过“调皮狗”游戏和“足球”游戏范例,介绍了XMLSocket类与后台的2种交互方法,介绍与后台程序员合作的基本过程。
通过“投篮”游戏,介绍如何使用类来组织程序代码,使游戏界面与代码基本分离。通过“小鱼历险记”游戏,介绍了如何用面向对象编程技术编写游戏,包括粒子库、道具库开发等。
第1章ActionScript2.0编程基础1.1手工创建MovieClip类的实例.1.2用程序创建MovieClip类的实例1.3加法程序1.4地图的缩放1.5运动的小球1.6查找类的实例1.7右键菜单1.8模糊切换效果1.9使用AsBroadcaster类1.10使用XPathAPI类1.11应用程序的结构
第2章ActionScript2.0面向对象编程2.1类的结构2.2变量与属性2.3函数与方法2.4构造函数2.5双重修饰属性或方法2.6EventDispatcher类与事件2.7在类中使用事件处理函数2.8包.类路径与导入类2.9类继承2.10私有构造函数.抽象类与多态2.11私有构造函数与单例模式2.12super与类继承2.13接口继承与工厂模式2.14实例的引用与复制2.15在类中使用this
第3章开发加载类库3.1加载JPG文件3.2加载TXT文件3.3加载CSS文件..3.4加载XML文件3.5加载MP3文件3.6加载FLV文件3.7编写AbstractLoad类3.8继承于AbstractLoad类的MP3Load类3.9继承于AbstractLoad类的FLVLoad类3.10继承于AbstractLoad类的TXTLoad类3.11继承于AbstractLoad类的XMLLoad类3.12继承于AbstractLoad类的SWFLoad类3.13继承于AbstractLoad类的CSSLoad类3.14继承于AbstractLoad类的Loading类3.15策略模式与LoadStrategy类
第4章开发绘图类库4.1认识MovieClip类的绘图方法4.2分析.设计和编写样式类库4.3分析.设计和编写图形类库4.4分析.设计和编写绘图管理类4.5扩展图形类的线条绘制功能4.6扩展图形类的箭头绘制功能4.7扩展图形类的矩形绘制功能4.8扩展图形类的坐标轴绘制功能4.9扩展图形类的其他绘制功能
第5章开发播放器类库5.1分析.设计和编写播放器类库5.2创建MP3播放器5.3创建图片播放器5.4创建影片播放器
第6章互动游戏开发6.1“调皮狗”游戏开发6.2“足球”游戏开发6.3“投篮”游戏开发6.4“小鱼历险记”游戏开发...
本文链接: 
责任编辑:
蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。
转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。
特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们,我们将立即删除修改。
本文现有 5 条评论 暂时没有人参与评分 Publish at
8:41:19 建QQ群不现实,有问题可到我blog上留言:另外,oop方面的东西不是看一遍就能理解的 Publish at
9:35:52 只是将例子抄在书中,不作相关解释,看了一次后,有些知识还不理解,不知其为何要这样,若能再加些注释解释清楚,才算好。建议作者添加QQ群,以便读者有问题及时提出 Publish at
你是个倒霉彪逼嘛,这本书写的很不错,面对新手和中级用户,不面对你这样的傻逼, Publish at
12:49:41 垃圾书
Publish at
7:42:05 样章:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用,以利文档及时修改。
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:?不良评论请用,以利管理员及时删除。?尊重网上道德,遵守中华人民共和国的各项有关法律法规?承担一切因您的行为而直接或间接导致的民事或刑事法律责任?本站评论管理人员有权保留或删除其管辖评论中的任意内容
?您在本站发表的作品,本站有权在网站内转载或引用 ?参与本评论即表明您已经阅读并接受上述条款
专业书推荐
&1999-. 版权所有

我要回帖

更多关于 我可以抱你吗 的文章

 

随机推荐