flash ActionScript30最强教程.docx

上传人:b****4 文档编号:12255069 上传时间:2023-04-17 格式:DOCX 页数:31 大小:22.78KB
下载 相关 举报
flash ActionScript30最强教程.docx_第1页
第1页 / 共31页
flash ActionScript30最强教程.docx_第2页
第2页 / 共31页
flash ActionScript30最强教程.docx_第3页
第3页 / 共31页
flash ActionScript30最强教程.docx_第4页
第4页 / 共31页
flash ActionScript30最强教程.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

flash ActionScript30最强教程.docx

《flash ActionScript30最强教程.docx》由会员分享,可在线阅读,更多相关《flash ActionScript30最强教程.docx(31页珍藏版)》请在冰豆网上搜索。

flash ActionScript30最强教程.docx

flashActionScript30最强教程

flashActionScript30最强教程.txtゅ你不用一上线看见莪在线,就急着隐身,放心。

莪不会去缠你。

说好的不离不弃现在反而自己却做不到╮1.hello,world

2.定义变量

var变量名:

数据类型;

定义常量:

const常量名:

常量类型=常量值;

定义静态:

static

3.数据类型

基本类型:

int:

32位正负整数,处理坐标,默认值0;

uint:

16位正整数,处理与颜色有关的值,默认值0;

Number:

64位小数,默认值NaN;

Boolean:

布尔值,默认值false;

String:

字符串,默认值null;

常用类型:

Array:

数组;

Date:

日期;

Error:

异常;

Function:

函数;

RegExp:

正则表达式;

XML:

xml;

XMLList:

xml树;

4.运算符

+,-,*,/,%;;

=,+=,-=,*=,/=,%=;

==,!

=,===,!

===,>,<,>=,<=;

&&,||,!

?

:

;

typeof:

返回对象类型;

is:

判断是否是这个类型;

as:

当做这个类型返回;

in:

判断一个对象是否含有另一个对象的键或索引;

delete:

删除动态属性

5.程序控制语句:

while,do-while,for,

for(varkina),

foreach(varkina),

(区别:

都用于遍历集合,如Array,XML,XMLList,只是for中k为对象下标;foreach中的k为对象本身)

break,continue跳出循环,

switch,

6.函数

function函数名(参数对象:

参数类型=默认值):

返回值类型{

函数体

}

var函数名:

Function=function(参数对象:

参数类型=默认值):

返回值类型{

函数体

}

区别:

this指向不同

注:

函数是Function类的对象。

该类有arguments属性,意为传入该函数的参数,有arguments.length表示参数个数,有arguments.callee()回调自身;

另:

函数可定义可变参数:

function函数名(...kebiancanshu):

返回值{

kebiancanshu.length;

}

7.命名空间,相当于自己定义访问权限符。

定义:

namespace命名空间名

打开:

usenamespace命名空间名

使用:

命名空间名:

:

属性/方法

8.动态类

在class前加入dynamic,可动态改变类,效率不如密封类,也就是一般的类,一般不用。

9.方法重载和重写

重载:

在ActionScript中不支持方法重载,但可利用动态参数自己在函数内部完成。

重写:

overidepublicfunction函数名():

返回值{}

10.setter和getter方法

publicfunctionget函数名():

返回类型{

return私有对象;

}

publicfunctionset函数名(参数对象:

参数类型){

私有对象=参数对象

}

11.数组

属性:

length长度

方法:

查找:

indexOf(),lastIndexOf();

首尾增加一或多个元素:

push(),unshift();

首尾删除一个元素:

pop(),shift();

插入或删除元素:

splice(删除点下标,删除个数,插入新元素1,插入新元素2,插入新元素3,...)

(注:

删除点的下标可为负值,表示从后往前算,-1表示倒数第一个元素。

获取子数组:

slice(起始下标,终点下标);

连接数组:

concat();

排序:

反序reverse(),正序sort(),指定排序sortOn();

(Array.CASEINSENSITIVE字母大小写不敏感或数字从小到大;

Array.DESCENDING字母倒序;

Array.UNIQUESORT唯一排序;

Array.NUMBERIC数字排序;

Array.RETURNINDEXEDARRAY返回排序后的下标序列)

操作数组每个元素方法:

遍历操作:

forEach(callback:

Function):

void;回调函数不返回任何值;

过滤器:

filter(callback:

Function):

Array;回调函数返回新数组的元素;

映射器:

map(callback:

Function):

Array;回调函数返回新数组的元素;

判断是否满足一个:

some(callback:

Function):

Boolean;回调函数返回单个元素比较结果;

判断是否全满足:

every(callback:

Function):

Boolean;回调函数返回单个元素比较结果;

回调函数:

functioncallback(item:

*,index:

int,array:

Array):

void;

(注:

item为原数组元素引用,index为原数组下标)

12.字符串String

方法:

charAt(),charCodeAt()返回字符,返回unicode;

String.formCharCode()根据unicode返回字符;

indexOf(查询对象[,起始索引]);查找

subString(起始索引[,终点索引]),slice(起始索引[,终点索引]),substr(起始索引,截取长度);返回子串

split(分隔符|正则表达式);分割子串

13.正则表达式RegExp

定义:

var正则对象:

RegExp=/匹配模式/标志位

var正则对象:

RegExp=newRegExp(匹配模式,标志位)

14.XML类

小例子:

varfile:

String="yemen98941";

varxml1:

XML=newXML(file);

varxml2:

XML=yemen98941

trace(xml1.name);

trace(xml2.name);

xml1.repass=newXML();//增加子项

xml1.repass="98941";

xml1.repass.@useMethod="reinput";//增加属性

trace(xml1);

deletexml1.repass;//删除子项

trace(xml1);

trace(xml1..name);//检索

从外部读入xml

varurlRequest:

URLRequest=newURLRequest("abcd.xml");

varurlLoader:

URLLoader=newURLLoader(urlRequest);

urlLoader.addEventListener(Event.COMPLETE,an);

functionan(evt:

Event){

varxml:

XML=newXML(urlLoader.data);

trace(xml);

}

15.事件模型

EventDispatcher-->Event-->EventListener

例子:

a_mc.addEventListener(MouseEvent.CLICK,an);

functionan(evt:

MouseEvent):

void{

trace(evt.type);//输出时间类型

evt.target.x+=10;

16.自定义事件

通常用于传递数据,自定义事件需要手动触发。

方法:

1.自定义事件类,继承自Event类,需要传递的数据定义到该自定义事件类中,并定义事件类型字符串常量,实现构造方法,toString方法和clone方法,如:

package{

importflash.events.Event;

publicclassMyEventextendsEvent{

publicstaticconstFA_SHENG:

String="发送了一个事件";//事件类型常量

privatevara:

int;//定义传递的数据

publicfunctionMyEvent():

void{//自定义事件构造函数,调用父类Event构造函数,传递事件类型常量作为参数

super(FA_SHENG);

}

publicfunctiongetabc():

int{

returna;

}

publicfunctionsetabc(n:

int):

void{

a=n;

}

overridepublicfunctiontoStrin():

String{

returnformatToString("MyEvent","type","bubbles","cancelable","eventPhase","abc")

}

overridepublicfunctionclone():

Event{

varevt:

MyEvent=newMyEvent();

evt.a=a;

returnevt;

}

}

}

2.自定义事件发送类

package{

importflash.events.EventDispatcher;

publicclassSetEventObjectextendsEventDispatcher{

publicfunctionchufa():

void{

varmyevent:

MyEvent=newMyEvent();

myevent.abc=45;

dispatchEvent(myevent);

}

}

}

3.调用

package{

importflash.display.Sprite;

publicclassMainextendsSprite{

publicfunctionMain():

void{

varsetEventObject:

SetEventObject=newSetEventObject();

setEventObject.addEventListener(MyEvent.FA_SHENG,an);

setEventObject.chufa();

}

privatefunctionan(evt:

MyEvent):

void{

trace(evt);

}

}

}

17.网络通讯

例子:

varurlRequest:

URLRequest=newURLRequest(URL路径);//定义地址

varurlVariables:

URLVariables=newURLVariables("name=u&pass=1");//定义参数

urlRequest.method=URLRequestMethod.POST;//设定方法

urlRequest.data=urlVariables;//设定参数

(如为XML:

urlRequest.contentType="text/xml";

urlRequest.data=XML对象.toXMLString();)

varurlLoader:

URLLoader=newURLLoader();//定义访问器

urlLoader.dataFormat=URLLoaderDataFormat.TEXT;//设置返回值类型

(文本型,还有二进制URLLoaderDataFormat.BINARY和键值对URLLoaderDataFormat.VARIABLES)

urlLoader.load(urlRequest);//发送请求

urlLoader.addEventListener(Event.COMPLETE,do)//增加监听器

trace(urlLoader.data);//返回值在data属性中

URLRequest类的使用:

小例子之打开网页:

package{

importflash.display.Sprite;

importflash.geom.Rectangle;

importflash.events.MouseEvent;

import.URLRequest;

import.*;

publicclassMainextendsSprite{

publicfunctionMain():

void{

vara:

Sprite=newSprite();

a.graphics.beginFill(0x00ff00);

a.graphics.drawRect(0,0,100,50);

a.graphics.endFill();

a.addEventListener(MouseEvent.CLICK,onClick);

addChild(a);

}

privatefunctiononClick(evt:

MouseEvent):

void{

varurl:

URLRequest=newURLRequest("");

navigateToURL(url);

}

}

}

小例子之本地通讯:

发送端:

vara:

LocalConnection=newLocalConnection();

button.addEventListener(MouseEvent.CLICK,an);

functionan(evt:

MouseEvent):

void{

a.send("abc","showText",sender_txt.text);

}

接收端:

varreciever:

LocalConnection=newLocalConnection();

reciever.client=this;

reciever.connect("abc");

functionshowText(txt:

String){

reciever_txt.text=txt;

}

播放视频小例子:

vara:

NetConnection=newNetConnection();

a.connect(null);

varb:

NetStream=newNetStream(a);

b.client=this;

varc:

Video=newVideo(160,120);

c.attachNetStream(b);

addChild(c);

b.play("a.flv");

vard:

Sprite=newSprite();

d.graphics.beginFill(0x00ffff);

d.graphics.drawRect(0,0,50,50);

d.graphics.endFill();

d.x=350;

d.y=300;

addChild(d);

d.addEventListener(MouseEvent.CLICK,an);

functionan(evt:

MouseEvent):

void{

b.togglePause();

}

播放mp3小例子:

vara:

Sound=newSound();

varurl:

URLRequest=newURLRequest("1.mp3");

a.load(url);

varb:

SoundChannel=newSoundChannel();

b=a.play();

button.addEventListener(MouseEvent.CLICK,an);

functionan(evt:

MouseEvent):

void{

b.stop();

}

vartrans:

SoundTransform=newSoundTransform();

trans.volume=0.1;

b.soundTransform=trans;

flash和javascript通讯小例子:

JS与AS通讯:

ExternalInterface.addCallback("abcd",ab);

functionab(a:

String):

void{

textField.text=a;

}

AS与JS通讯:

button.addEventListener(MouseEvent.CLICK,an);

functionan(evt:

MouseEvent):

void{

ExternalInterface.call("sendToJS",textField.text);

}

附:

flash与后台服务器通讯四种方法:

18.视觉编程

继承树:

 

父类DisplayObject的属性:

name名字。

parent父容器。

root当前swf主类实例引用。

stage显示对象的舞台,只读。

x横坐标。

y纵坐标。

width宽。

height高。

scaleX缩放(0~1)。

scaleY缩放(0~1)。

mouseX鼠标x位置。

mouseY鼠标y位置。

rotation旋转度数。

alpha透明度。

visible是否可视。

mask遮罩对象引用。

scale9Grid有效缩放网格。

cacheAsBitmap复杂图形用。

filters路径数组。

loaderInfo下载信息。

transform记录信息的类Transform对象。

DisplayObject方法:

globalToLocal(Point:

Point):

Point舞台坐标转换为显示对象坐标。

hitTestObject()碰撞检测。

DisplayObjectContainer属性:

numChildren子对象个数,子对象索引从0开始到numChildren-1。

DisplayObjectContainer方法:

添加删除子对象方法:

addChild(),addChildAt(),removeChild(),removeChildAt()

访问子对象方法:

getChildAt(),getChildByName(),getChildIndex(),getObjectsUnderPoint()

检测子对象方法:

contains(),

设置次序方法:

setChildIndex(),swapChildren(),swapChildreAt()

绘图方法:

矢量图:

内含Graphic类对象的类均可,有Sprite,MovieClip,Shape

位图:

Bitmap

文本方法:

TextField类,动态文本type属性为TextFieldType.DYNAMIC;输入文本type为TextFieldType.INPUT。

Sprite类绘图小例子:

内含Graphics类,用于画图,拖动小例子:

package{

importflash.display.Sprite;

importflash.events.MouseEvent;

publicclassMainextendsSprite{

privatevara:

Sprite=newSprite();

publicfunctionMain():

void{

a.graphics.lineStyle(2,0xff0000);

a.graphics.beginFill(0x00ff00);

a.graphics.drawRect(0,0,100,50);

a.graphics.endFill();

this.addChild(a)

a.addEventListener(MouseEvent.MOUSE_DOWN,an);

a.addEventListener(MouseEvent.MOUSE_UP,tai);

}

privatefunctionan(evt:

MouseEvent):

void{

a.startDrag();

}

privatefunctiontai(evt:

MouseEvent):

void{

a.stopDrag();

}

}

}

Graphics类详解

方法:

beginGradientFill()渐变色填充

clear()清除图像

lineStyle(粗细值,颜色值)划线的线条样式

moveTo(起始坐标)设定起始点

lineTo(结束坐标)设定结束点

endFill()结束填充

curveTo(折点,终点)曲线结束点

graphics.beginBitmapFill()填充位图,小例子,位图通过导入,并修改属性的链接项。

矢量图填充位图例子:

package{

importflash.display.Sprite;

importflash.events.MouseEvent;

publicclassMainextendsSprite{

privatevara:

Sprite=newSprite();

publicfunctionMain():

void{

varh:

ha=newha(0,0);

a.graphics.beginBitmapFill(h);

a.graphics.drawRect(0,0,120,140);

a.graphics.endFill();

addChild(a);

}

}

}

位图绘制详解:

使用:

Bitmap类与BitmapData类

Bitmap属性:

bitmapData:

BitmapData

pixelSnapping紧贴像素

smoothing平滑处理

BitmapData属性:

height

rect:

Rectangle

width

使用方法小例子:

package{

importflash

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

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

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1