As3教程
- 格式:docx
- 大小:38.04 KB
- 文档页数:33
ActionScript 3教程系列【黑羽】ActionScript 3.0系列教程(1):与Flash9先来一次亲密接触!如蒙转载,请留下我的Blog链接:,thx)Flash Professional 9 ActionScript 3.0 Preview版本今天发布了,意味着从此我们从此不仅仅只能使用Flex 2来使用AS3.0,更可以使用我们一直很熟悉的Flash IDE来进行AS3.0开发了。
与Flex 2不同,Flash 9 alpha(即上面的Flash Professional 9 ActionScript 3.0 Preview )允许我们创建基于时间轴的ActionScript 3.0的Fla文档,而不是基于State的MXML文档。
在Flash 9 alpha里,我们和以前一样可以在舞台上直接手绘矢量图,创建元件,添加动画,等等。
我黑羽是急性子,先跳开一些特色的介绍,单刀直入,马上来个实例。
边讲解边说说Flash 9的特点。
点击看大图,清楚点。
为了照顾新手xdjm们,看图说话一把。
老鸟略过勿看,省得嫌我罗嗦。
呵呵。
新建一个fla,随便画一个方块什么的,双击选中按F8转换成MovieClip。
在属性面板中命名为kingda_mc。
和以前一模一样。
再新建一层,命名为actions,这是个好习惯,要保持。
选中第一帧,按F9打开动作面板,写入如下代码。
Control+Enter,在测试窗口中,双击那个方块,就会有trace信息显示出来。
//【黑羽】ActionScript 3.0系列教程(1)//kingda_mc.doubleClickEnabled = true;kingda_mc.addEventListener(MouseEvent.DOUBLE_CLICK, clickHandler);function clickHandler(event:MouseEvent):void {trace("哈哈,你双击我了");}//直接支持双击了,兄弟们,爽不爽^_^稍作解释,这儿有几个和AS2.0不同的地方了。
从基础开始深入Flash AS3 教程(1)(译文)在AS3 中,你可以使用Stage 类动态的修改影片的帧频。
Stage类(flash.display.Stage)的stage对象是所有的sprite和MovieClip以及其他在安全沙箱里的所有元件的舞台。
stage 对象的帧频可以是0.01 到1000 之间的任何一个数。
要修改帧频,使用下面的代码:// 将帧频修改到12 帧每秒( FPS)stage.frameRate = 12;类方法的作用域和类绑定在一起AS3 完全基于类构造。
当一个类被创建的时候,类中的参数,变量,方法或任何实例都同时被创建。
和AS2 不同,AS3 中的方法在执行的时候,将使用和类同样的作用域。
例如下面的代码:package {import flash.display.Sprite;public class ClassScope extends Sprite {public function ClassScope() { traceThis(); // 输出"Class Instance"var obj:Object = new Object();obj.traceThis = traceThis;obj.traceThis(); // 输出"Class Instanee"traceThis.call(new Sprite()); // 输出"Class Instanee"}public override function toString():String {return "Class Instance";}public function traceThis():void {trace(this);}}} 图形对象和绘图API 和AS1和AS2 一样,AS3也提供了绘图API来绘制矢量线段和图形。
这是一篇关于as3正则表达式应用基础教程的文章,转自于猛牛蛋筒的日志,第一次看这篇文章的时候,还真像作者在文中说的一样,我们是在看一本天书,一本外文一样,正因如此,所以要细细研究,为今后学习AS3打下一定的基础。
现在进入正题,谈谈正则表达式,在AS3.0中引进了正则表达式。
正则表达式是用于验证文本值是否符合特定模式。
正则表达式有四个部分。
1元子符。
2元序列。
3标志。
4数量表达符。
可以这样看 pattern RegExp= /匹配字符串元字符元序列/标志当然顺序可能不完全是这样.别把他想的太复杂其实他就是个组合。
现在我们来看看元字符: ^ $ \ . * + ? ( ) [ ] { } |前面说的是元字符串的使用1.^的用法:匹配字符串的开头var pattern:RegExp=/^小虫/;var str:String="小虫是好人";trace(str, " is valid:", pattern.test(str));小虫是好人 is valid: true2.$的用法:字符串的结尾部分与前面的字符串匹配.var pattern:RegExp=/lizhen$/;var str:String="My name is lizhen";trace(str, " is valid:", pattern.test(str));小虫是好人 is valid: true仔细看一下两个符号在匹配字符串中的位置,注意:如果同时使用^符号和$符号,将进行精确匹配。
3.\的用法:转义字符如果匹配字符串中包含有"/"比如 1/2 的时候,使用如下定义var pattern:RegExp = /1\/2/;var str:String="1/2是多少?";trace(str, " is valid:", pattern.test(str));1/2是多少? is valid: true如果匹配字符串中包含有""比如 "lizhen" 的时候,使用如下定义var pattern:RegExp=/\"lizhen"/;var str:String="My name is \"lizhen\"";trace(str, " is valid:", pattern.test(str));My name is "lizhen" is valid: true4.*的用法:匹配0个或多个前面的字符.一个都没有也会返回true;var pattern:RegExp=/我的*/;var str:String="我的我的我的";或者var str:String="我的"trace(str, " is valid:", pattern.test(str));我的我的... is valid: true5.+的用法:匹配至少一个前面的字符var pattern:RegExp=/我的+/;var str:String="我的ID是...";或者var str:String="我的"trace(str, " is valid:", pattern.test(str));我的ID是... is valid: true注意+和*的区别。
Flash AS3.0教程:载入库中的影片剪辑1、新建Flash文档(AS3),存盘。
2、打开“鹰”的影片剪辑,复制到库中,(在这里不讲解影片剪辑制作的过程)。
3、右键点击“鹰”影片剪辑,在下拉菜单中点击【属性】打开属性面板,勾选【为AstionScript导出】在类:文本框中输入:hawk,按【确定】如图:4、返回场景1,选中图层1的第帧,按F9键,打开动作面板输入代码:第一行用var声明一个实例名:myhaw给影片剪辑。
第二行用addChild()命令将实例myhaw加入显示列表。
提示:当没有明确指定显示容器时,影片剪辑实例是被添加到时间轴的当前帧。
我们按Ctrl+Enter组合键,测试一下,影片已经显示在屏幕上了。
参见未命名1.fla文档5、我们已经把影片剪辑添加到时间轴上了,下面我们继续添加代码,做一个鹰跟随鼠标移动。
打开动作面板,加入下面代码:上面的示例使用了事件的处理和函数的声明。
参见未命名2.fla文档下面是一个影片剪辑拖放的示例:具体创建过程不再重复,参照上面示例不再废话,直接上代码:按下鼠标拖拽物体,当释放鼠标时,物体会停止跟随指针。
参见未命名3.fla文档添加一个影片剪辑到一个容器DisplayObjectContainer对象(和继承DisplayObjectContainer类所创建的对象)可以包含零个或多个显示项。
就像移动容器一样,所有容器对象中的显示项相对容器移动。
示例:1、新建Flash文档(AS3),打开未命名1.fla文件。
2、使用库的下拉菜单来选择“未命名1.fla”的库。
如图:3、将“鹰”影片剪辑从库中拖放到舞台上。
4、通过库的下拉菜单选择回到新文件的库。
如图:注意:“鹰”的影片剪辑及相关素材已经列在当前文件的库中了。
5、删除舞台上的影片剪辑。
6、选择时间轴第1帧,命名:as,打开动作面板,输入代码:7、新建图层,并把它拖到as层的下方,重命名为text。
选中第1帧,使用文字工具在舞台上输入:点击并移动mySprite,到(150,200)坐标位置。
2023年as3.0基础教程2023年as3.0基础教程很多刚开始学习ActionScript的同学都喜欢问一个问题,学习ActionScript必须要会Flex吗,其实这是不需要的,Flex是一种更符合程序员开发理念的ActionScript开发方式,现在这种开发方式也很流行,特别是FlashBuilder推出以后,关于Flex的核心也是ActionScript,所以不论如何,如果想从事flash 开发或者学好这门技术,学好ActionScript是必须的。
学ActionScript还需要会Flex吗ActionScript 3.0是最新且最具创新性的 ActionScript 版本。
ActionScript 是针对 Adobe Flash Player 运行时环境的编程语言,它在Flash 内容和应用程序中实现了交互性、数据处理以及其它许多功能。
ActionScript 是由 Flash Player 中的 ActionScript 虚拟机 (AVM) 来执行的。
ActionScript代码通常被编译器编译成“字节码格式” (一种由计算机编写且能够为计算机所理解的编程语言),如 Adobe Flash CS3 Professional 或 Adobe FlexBuilder 的内置编译器或Adobe Flex SDK 和 Flex DataServices 中提供的编译器。
字节码嵌入 SWF 文件中,SWF 文件由运行时环境Flash Player执行。
ActionScript 3.0 提供了可靠的编程模型,具备面向对象编程的基本知识的开发人员对此模型会感到似曾相识。
ActionScript 3.0 中的一些主要功能包括:一个新增的 ActionScript 虚拟机,称为 AVM2,它使用全新的字节码指令集,可使性能显著提高。
一个更为先进的编译器代码库,它更为严格地遵循 ECMAScript(ECMA 262)标准,并且相对于早期的编译器版本,可执行更深入的优化。
再学AS3(六):音乐播放器1--控制播放进度主要功能:点击进度条音乐从鼠标点击处开始播放。
制作过程:1、新建FLASH CS3文档,保存名为“音乐播放器进度控制”,保存在存有音乐的文件夹内。
设置文档大小:252×114像素,帧频:24fps。
2、第一层名为“播放器背景”,在该层画一个播放器背景。
3、新建图层,名为“播放进度框”,画一个无边框的圆角矩形,边角半径为8,宽202高6,填充颜色为#006600,使其垂直水平于舞台。
4、新建图层,名为“播放进度背景”,画一个无边框的圆角矩形,边角半径为8,宽200高4,从上到下填充#99CC00到#55802B渐变色,使其垂直水平于舞台。
5、新建图层,名为“播放进度条”,画一个无边框的圆角矩形,边角半径为0,宽202高6,从上到下填充#00CCFF到#0066FF渐变色,使其垂直水平于舞台,转换为名为“播放进度条”的影片剪辑。
在场景中的实例名为“bfjdt_mc”。
6、新建图层,名为“播放进度条遮罩”,把“播放进度背景”图层上帧复制并粘贴到“播放进度条遮罩”图层上,右键选择“遮罩层”。
7、新建图层,名为“进度控制”,画一个无边框的圆角矩形,边角半径为0,宽200高6,填充颜色任意,使其垂直水平于舞台,转换为名为“进度控制”的按钮元件,并将“弹起”帧上的图形拖到“点击”帧上。
在场景中的实例名为“jdcz_btn”。
8、新建图层,名为“AS”,在帧上写如下代码://申明变量var _sound:Sound=new Sound();var _channel:SoundChannel=new SoundChannel();var loaded:int;var total:int;var _length:int;var position:int;var percentBuffered:Number;var percentPlayed:Number;//载入MP3并播放var url:String="****.mp3";//你电脑上的MP3音乐文件名,把该文件与MP3音乐文件放在一个文件夹内。
再学AS3(六):音乐播放器1--控制播放进度主要功能:点击进度条音乐从鼠标点击处开始播放。
制作过程:1、新建FLASH CS3文档,保存名为“音乐播放器进度控制”,保存在存有音乐的文件夹内。
设置文档大小:252×114像素,帧频:24fps。
2、第一层名为“播放器背景”,在该层画一个播放器背景。
3、新建图层,名为“播放进度框”,画一个无边框的圆角矩形,边角半径为8,宽202高6,填充颜色为#006600,使其垂直水平于舞台。
4、新建图层,名为“播放进度背景”,画一个无边框的圆角矩形,边角半径为8,宽200高4,从上到下填充#99CC00到#55802B渐变色,使其垂直水平于舞台。
5、新建图层,名为“播放进度条”,画一个无边框的圆角矩形,边角半径为0,宽202高6,从上到下填充#00CCFF到#0066FF渐变色,使其垂直水平于舞台,转换为名为“播放进度条”的影片剪辑。
在场景中的实例名为“bfjdt_mc”。
6、新建图层,名为“播放进度条遮罩”,把“播放进度背景”图层上帧复制并粘贴到“播放进度条遮罩”图层上,右键选择“遮罩层”。
7、新建图层,名为“进度控制”,画一个无边框的圆角矩形,边角半径为0,宽200高6,填充颜色任意,使其垂直水平于舞台,转换为名为“进度控制”的按钮元件,并将“弹起”帧上的图形拖到“点击”帧上。
在场景中的实例名为“jdcz_btn”。
8、新建图层,名为“AS”,在帧上写如下代码://申明变量var _sound:Sound=new Sound();var _channel:SoundChannel=new SoundChannel();var loaded:int;var total:int;var _length:int;var position:int;var percentBuffered:Number;var percentPlayed:Number;//载入MP3并播放var url:String="****.mp3";//你电脑上的MP3音乐文件名,把该文件与MP3音乐文件放在一个文件夹内。
第1讲.动画基础类和面向对象编程类(Class)和面向对象(Object Oriented)一个类最基本的两个部分:属性(数据或信息),行为(动作或它能做的事)。
属性(Property)指用于保存与该类有关的信息变量,行为(Behavior)就是指函数,如果一个函数是这个类中的一部分,那么我们就称它为方法(Method)。
类可以简单理解为一种对象, MovieClip 就是影片剪辑的类,而文本框、影片剪辑、按钮、字符串和数值等都有它们自己的类。
常用 Flash 的朋友都知道,我们可以在库中创建一个元件,用这个元件可以在舞台上创建出很多的实例。
与元件和实例的关系相同,类就是一个模板,而对象(如同实例)就是类的一个特殊表现形式。
下面来看一个类的例子:package { //包的声明,作用是把相关的类进行分组public class MyClass { //类的定义public var myProperty:Number = 100; //类中变量的声明public function myMethod() { //类中函数(或者叫“方法”)的定义trace("I am here"); //内部函数调用}}}AS3.0 中的类拥有访问关键字。
访问关键字是一个用来指定其它代码是否可访问该代码的关键字。
public (公有类) 关键字指该类可被外部任何类的代码访问。
包(Package)包主要用于组织管理类。
包是根据类所在的目录路径所构成的,并可以嵌套多层。
包名所指的是一个真正存在的文件夹,用“.”进行分隔。
例如,有一个名为 Utils 的类,存在于文件夹 com/ friendsofed/ makingthingsmove/ 中(使用域名作为包名是一个不成文的规定,目的是保证包名是唯一的)。
这个类就被写成com.friendsofed.makingthingsmove.Utils。
在 AS 3 中,包名写在包的声名处,类名写类的声名处,例如:package com.friendsofed.makingthingsmove{public class Utils {}}导入(Import)想象一下,每次要使用这个类的方法时都要输入com.friendsofed.makingthingsmove.Utils,是不是太过烦琐太过死板了。
第一部分:ActionScript. 3 语言基础┃┗━━━━━━━━━━━━━━━━━━┛================================================第2章ActionScript. 3 语言基本元素================================================2.1.2 数据类型概述简单数据类型Boolean(布尔)、int(有符整型)、Number(浮点)、String(字符串)、uint(无符整型)复杂数据类型Array(数组)、Date(日期)、Error(异常)、Function(函数)、RegExp(正则表达)、XML、XMLList2.2.1 变量声明var 变量:类型var 变量:类型= 值;2.3 声明常量const 常量名:类型= 值;2.4 基础数据类型1.布尔值Boolean(初始化为false)2.数字:int uint Numberint 有符号32位整数-2(31次方) - +(2(31次方)-1)uint 无符号32位整数0 - 2(32次方)-1Number 64位浮点能用整数优先用int uint,有正负之分,用int。
只处理整数,用uint,有小数,用Number。
2.4.6 Object及关联数组var 对象:Object = new Object()var 对象:Object = {};2.4.8Null、NaN、undefined及各自应用对象:变量的默认值数据类型默认值int 0uint 0Number NaNString nullBoolean falseArray nullObject null没声明undefined* undefined注意:必须声明初值,否则容易出错。
2.5 运算符,表达式及运用2.5.11 typeof、is、astypeof,用字符串返回对象类型,格式:typeof(对象)is ,判断操作符左边的对象是否属于右边的类型,返回值为Boolean,格式:对象is 数据类型as ,判断操作符左边的对象是否属于右边的类型,属于则返回数据,不属于则返回null,格式:对象as 数据类型typeof对象类型与返回结果对照表对象类型返回结果Array objectBoolean booleanFunction functionint numberNumber numberObject objectString stringuint numberXML xmlXMLList xml2.5.12 inin ,判断操作符左边的对象是否作为右边对象中的键(Key)或索引,返回值为Boolean比如:var a:Array = ["q","w","e"];trace(2 in a); //数组中有索引2,返回truetrace(3 in a); //数组中没有索引3,返回false2.5.13 delete关键字AS2.0中可以删除任意任意对象的delete关键字,在AS3.0中只能用于删除对象的动态实例属性,非动态属性不能删除。
如果要将一个对象删除,使用对象名= null 来进行赋值操作即可。
================================================第3章ActionScript. 3 流程控制================================================3.4.5 for...in和for each...infor(var 枚举变量in 枚举集合) //枚举变量返回为集合元素键名for each(var 枚举变量in 枚举集合) //枚举变量返回为集合元素值3.4.7 break和continue标签的特殊用法在循环语句前用标签: 的形式为循环体赋标签,然后就可以在break和continue语句后加上空格+这个标签,实现控制对应循环的功能。
3.5 AS3.0中switch比较默认使用=== 全等比较,switch条件不会自动执行类型转换,要注意。
================================================第4章ActionScript. 3 中的函数及高级使用技巧================================================4.1.1 两种定义函数的方法函数定义式- 函数变量式函数语句定义法- 函数表达式定义法函数定义式用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 = testThisAObj.TestB = testThisB4.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关键字,即...特殊关键字...(rest)function 函数名(...参数名){//参数名可随意定义trace(参数名.length)}最后要注意的,arguments与...rest关键字不能混用,使用了...rest则arguments则不能再使用┏━━━━━━━━━━━━━━━━━━━━┓┃第二部分:ActionScript. 3 面向对象编程┃┗━━━━━━━━━━━━━━━━━━━━┛================================================第5章类和对象━━从定义到原理================================================5.1 基本类结构基本结构:HelloWorldpackage{public class Hello{public var helloString:String = 'World';public function Hello(){}public function sayHello():void{trace("Hello");}}}ActionScript3中的类如果想被外部访问,必须放在package(包)中构造函数与类名相同,为与其它类内函数区分,一般首字母大写。
5.2 Class(类)和Object(对象)类是对象结构的描述。
5.3 Class的成员ActionScript3中的Class(类)的构成·Class的名称和包路径·构造函数·属性:包括实例属性和表态静态属性·方法:包括实例方法和静态方法AS3中对类的默认访问控制是internal(包内可见),而非AS2.0中的public5.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 类{//private 静态属性//private 静态方法//private 实例属性//构造函数//实例方法//静属静方实属构函实方,声明类内数据的五个顺序public function 构造函数(){//函数代码}}}5.6 实例属性和实例方法实例属性和实例方法类似于动态网页语言中的session,不同的类实例(对象)中的实例属性可以有不同值。
5.6.1 实例属性访问控制符var 属性名:数据类型;访问控制符var 属性名:数据类型= 值;访问控制符可以是internal public private protect 或者自定义的namespace标识默认为internal - 包内成员可以访问,包外不可访问5.6.2 实例方法访问控制符function 方法名(形参):返回值类型{//方法内容}5.6.3 访问实例属性和实例方法使用new 语法实例化对象后,对象.属性|方法名5.7 静态属性和静态方法静态属性和静态方法类似于动态网页语言中的Application,不同的类实例(对象)间共享类中共同的属性和方法。
声明静态属性:static var 属性:数据类型;static var 属性:数据类型= 值;public static var 属性:数据类型;public static var 属性:数据类型= 值;不加访问控制符时,默认同样是internal如果要声明静态常量,需要配合使用static 和conststatic const 属性:数据类型= 值;静态方法:同样是使用static关键字访问控制符static function 方法名(形参):返回值类型{//方法内容}5.7.3 访问静态属性和静态方法类名.属性类名.方法例:Math.floorMath.PI为了避免与类内成员变量冲突,访问静态属性及方法时,即使在类体内访问也最好用类名.属性这样的格式来写5.7.4 应用1:使用静态属性集中管理数据public static const PI:Number = 3.141592653589793;比如事件定义,一般都是使用静态属性的,那我们使用中文来定义属性,就可以在代码中使用中文事件了比如:public static const 播放:String = "play";使用事件时就可以用对象.播放来实现代码的中文化了5.7.5 应用2:使用静态属性部分实现Enumeration(枚举) [略]5.7.6 应用3:实现工具类如:Math String等类5.8 构造函数定义:构造函数用于创建对象时供系统自动调用的函数,实现数据的初始化操作格式:public 类名(形参){//构造函数名与类名相同,首字母大写,以与其它函数等区分//形参中同样可以使用...rest运算符载入不同个数的参数,实现类似重载的功能}5.8.3 构造函数的返回类型构造函数只能返回undefined值,所以return没意义。