当前位置:文档之家› As3教程

As3教程

As3教程
As3教程

第一部分:ActionScript. 3 语言基础┃

┗━━━━━━━━━━━━━━━━━━┛

================================================

第2章ActionScript. 3 语言基本元素

================================================

2.1.2 数据类型概述

简单数据类型

Boolean(布尔)、int(有符整型)、Number(浮点)、String(字符串)、uint(无符整型)

复杂数据类型

Array(数组)、Date(日期)、Error(异常)、Function(函数)、RegExp(正则表达)、XML、XMLList

2.2.1 变量声明

var 变量:类型

var 变量:类型= 值;

2.3 声明常量

const 常量名:类型= 值;

2.4 基础数据类型

1.布尔值Boolean(初始化为false)

2.数字:int uint Number

int 有符号32位整数-2(31次方) - +(2(31次方)-1)

uint 无符号32位整数0 - 2(32次方)-1

Number 64位浮点

能用整数优先用int uint,有正负之分,用int。只处理整数,用uint,有小数,用Number。

2.4.6 Object及关联数组

var 对象:Object = new Object()

var 对象:Object = {};

2.4.8

Null、NaN、undefined及各自应用对象:变量的默认值

数据类型默认值

int 0

uint 0

Number NaN

String null

Boolean false

Array null

Object null

没声明undefined

* undefined

注意:必须声明初值,否则容易出错。

2.5 运算符,表达式及运用

2.5.11 typeof、is、as

typeof,用字符串返回对象类型,格式:typeof(对象)

is ,判断操作符左边的对象是否属于右边的类型,返回值为Boolean,格式:对象is 数据类型

as ,判断操作符左边的对象是否属于右边的类型,属于则返回数据,不属于则返回null,格式:对象as 数据类型

typeof对象类型与返回结果对照表

对象类型返回结果

Array object

Boolean boolean

Function function

int number

Number number

Object object

String string

uint number

XML xml

XMLList xml

2.5.12 in

in ,判断操作符左边的对象是否作为右边对象中的键(Key)或索引,返回值为Boolean

比如:

var a:Array = ["q","w","e"];

trace(2 in a); //数组中有索引2,返回true

trace(3 in a); //数组中没有索引3,返回false

2.5.13 delete关键字

AS2.0中可以删除任意任意对象的delete关键字,在AS3.0中只能用于删除对象的动态实例属性,非动态属性不能删除。

如果要将一个对象删除,使用对象名= null 来进行赋值操作即可。

================================================

第3章ActionScript. 3 流程控制

================================================

3.4.5 for...in和for each...in

for(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 = 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关键字,即...

特殊关键字...(rest)

function 函数名(...参数名){

//参数名可随意定义

trace(参数名.length)

}

最后要注意的,arguments与...rest关键字不能混用,使用了...rest则arguments则不能再使用

┏━━━━━━━━━━━━━━━━━━━━┓

┃第二部分:ActionScript. 3 面向对象编程┃

┗━━━━━━━━━━━━━━━━━━━━┛

================================================

第5章类和对象━━从定义到原理

================================================

5.1 基本类结构

基本结构:HelloWorld

package

{

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中的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 类

{

//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 和const

static const 属性:数据类型= 值;

静态方法:

同样是使用static关键字

访问控制符static function 方法名(形参):返回值类型{

//方法内容

}

5.7.3 访问静态属性和静态方法

类名.属性

类名.方法

例:

Math.floor

Math.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没意义。

但return可以影响构造函数向下执行代码的顺序,遇到return时,其下的代码将终止执行。

5.9 Clas的种类:动态类和密封类

密封类在运行时不能动态添加属性或方法。

动态类在运行时可以动态添加属性或方法。

默认声明的类为静态类,动态类在class关键字前有dynamic 关键字

注意:AS3.0中的for...in循环,for each...in循环只能遍历动态类对象的动态属性

5.10 this关键字[略]

5.11 ActionScript3中的方法重载

public 类名(...rest){

//根据传入的函数个数进行处理

//不支持不同类型参数的区分作为重载的标准

}

5.12 含有多个类的ActionScript3 类文件的标准例子

(1)每个AS3的Class都必须写个一个和类同句的.as文件中

(2)package包体括号内只能定义一个Class

(3)在package包体中定义的Class,必须与类文件名相同

(4)在package包体括号外还可以定义其它类,这种类,叫包外类,只能被当前as文件中的成员类访问

========================================================

第6章ActionScript3中的封装:类的成员、类、包与访问控制

========================================================

公认OOP的三大要素为:封装、继承、多态

6.1 什么是封装[概括]

封装(encapsulation),又叫隐藏实现(hiding the implementation),具体的意思是将实现的细节隐藏起来,只将必要的功能接口对外公开。打个比喻就是汽车,用户只需要知道踏油门就会加油,打方向盘就会转向,至于汽车内部的实现细节,用户不用知道,而这些细节,就是属于封装了。

在ActionScript3.0中,使用访问控制说明符来控制代码的可见度。

访问控制说明符从“毫无限制”到“严格限制”的顺序是:

public 完全公开

protected 在private的基础上,允许子类访问

internal 包内可见

private 类内可见

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓

┃引用原话: ┃

┃┃

┃一个好的OOP程序,就像人开汽车那样,对象和对象之间的交流只限于公开的接口。┃┃好的OOP程序,没有流程执行先后的概念,只有代码单元之间如何相互交流和协同工作┃

┃的模式。这些代码单元,又被称为模块。模块在代码中的表现形式是一个单独的类或┃┃多个类。这些类共同协作,提供一种或多种服务。那么如何让一部分接口暴露呢?┃┃如何隐藏不对外公开的方法呢?使用访问控制说明符,这是实现封装的一个重要方法。┃

┃ActionScript3使用访问控制说明符来告知外部使用者,本代码单元有哪些成员可以被┃

┃外部访问到,哪些不能被访问到。将访问控制符从“毫无限制”到“严格限制”┃

┃排一下序:public、protected、internal和private。这些访问控制符,清楚明白地┃

┃描述了每个部分的访问权限。一个优秀的OOP程序,会尽可能将单个代码单元的细节隐┃

┃藏起来。换句话说,就是尽可能不要对外公开代码单元的成员。顺便说一句,不少OOP ┃

┃程序员最喜爱private关键字,因为这意味着最大的修改自由。很有意思,在OOP编程中,┃

┃你对代码单元访问控制得越严格,日后你对代码修改的自由越大。┃

┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

6.2 为什么需要封装

6.2.1 封装使修改代码更加容易和安全

封装使程序员在后期修改代码或在应用第三方代码的时候,可以在前期严格的访问控制定义下,令到改代码的时候,可以有的放矢地改,而不用担心因为改变部分代码而有可能令到程序的其它部分产生其它新问题.

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓

┃引用原话: ┃

┃┃

┃封装使修改代码更加容易和安全.开发RIA软件,和所有其它语言开发软件一样,┃┃会经常调度和修改代码.一般说来,软件的修改和调度时间可能会与开发时间相等,┃┃甚至更长.因此,程序开发者所写的代码要经得起不断的修改.尤其是当编写的代码要┃

┃提供给第三方使用时,更要小心你所做的修改,确保你的修改不会危害其它代码的稳健性. ┃

┃┃

┃如何确保稳定性?每个类有那么多的属性、方法,你如何知道其它程序员使用了哪些┃┃成员不知道就无从修改!如果有个标识,标识哪些是第三方可以访问的,哪些是他们不能┃

┃访问和修改的就好了。┃

┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

6.2.2 封装让代码分成一个个相对独立的单元

只要保持对外的接口不变,那么内部的代码结构可以任意改动,保证了代码单元的修改和替换更加安全,软件维护和修改都能有的放矢。

6.2.3 封装让整个软件开发的复杂度大大降低

模块化,降低复杂度才是封装这个思想产生的最真实的原因,代码易于修改、替换、复用等只是这一点附带的好处而已。

6.3 ActionScript3中封装的几个层次

包外-> 包->类->包外类(由外层到内层的结构,越靠近内近,访问权限越严格)

包外:相当于公共权限,任意第三方都可以访问到其中的代码单元。

包(package):包内的成员互相可以访问,但包内的成员不能被包外的成员访问到。

类(class):一个包中可以包含很多个类,在类的内部,类的成员可以相互访问,但外部是没有办法访问到类的私有成员的。

包外类:这是最底层的类,在package语句外定义,只能被当前类中的成员访问,类似只能被当前类调用的私有函数。

6.4 package(包)

package用于划分访问控制和实现模块化功能。

6.4.1 包的导入(import)

使用任何一个类之前,必须先导入这个类所在的包,即使使用全饰路径,也必须先导入包。在Flash CS3文档时间轴上写代码时,flash.*默认是自动导入的,可不用手动import

1.导入单个类

import 包路径;

2.使用通配符导入整个包

使用*号可以快速导入指定包的所有类,但一般为了程序的清晰,建议少用,而是直接写清楚导入类的包名

import 包路径.*;

3.使用同一个包内的类文件无须导入

如果导入的不同包中有同名的类,则需要在声明使用时使用全饰路径,即:new 完整包路径.类名();

6.4.3 package的创建和命名

业界习惯是使用域名来定义包路径

比如com.kinda.book.display

如果没有,也可以使用自己的电子邮箱

比如com.21cn.kinda.book.display

在项目工程目录下建立com文件夹,在com文件夹建kinda文件夹,在kinda文件夹内建book文件夹

使用系统目录形式来实现包的管理

创建包的过程:

1.选好包名,一般以域名段倒写为前缀;

2.在硬盘上根据定好的包名结构创建对应的目录结构

3.在包中创建的任何类,头部package定义中必须写上包路径

修改包结构的时候有三点要做:

1.移动包目录

2.修改包中类头部package中的包名

3.修改相应import类中的包名

6.5.1 类路径

Ctrl+U > ActionScript. > ActionScript. 3 Settings...

在此可添加系统类包路径,供全局调用。

6.6 类成员的访问控制

AS3中有四种访问控制符:

public

private

internal

protected

访问控制符不仅控制实例属性和方法,对静态属性和方法也有同样的作用。

6.6.1 internal:包内访问

AS3中所有类成员在没加访问控制符的情况下,都为默认的internal权限,

可以被同一个包内的其它类成员访问

6.6.2 public:完全公开

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓

┃引用原话: ┃

┃┃

┃在些要提醒的是,public的类成员应当看成是这个类对外部做出的承诺、协议,┃┃一旦决定,日后不能轻易改动。不能仅仅为了其他类可以访问某个成员,而轻率地将该成员设┃

┃为public。这是OOP新手极容易犯的错误。┃

┃一旦发现某个类成员需要频繁被外部访问,就要先考虑这个类成员的设计是否不当,┃

┃可否独立出来;再考虑可否归入那些需要频繁访问的包中,使用internal级别来实现;最后再┃

┃考虑使用public的访问控制。┃

┃总之,尽量将类成员的访问权限控制到最低限度,这才能给日后的修改、维护代码带来┃

┃最大的自由。┃

┃┃

┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

6.6.3 private:仅当前类可访问

private修饰的类的成员,称为私有成员(private member),除了类体内可以访问外,包内的其它类和继承的子类等都不能访问私有成员。

对于复杂数据类型(比如数组等)的属性来说,private只能限制通过当前类的实例来访问,但不能限制这个属性所指向的引用对象本身的访问。

6.6.4 protected:子类可访问

protected修饰的对象只能被当前类和当前类的子类对象访问,等同在private基础上增加对子类的支持。

protected修饰的子类不受包的限制,可以在不同类中,如果不是当前类子类,那和private 是一样的。

6.7 getter和setter方法

getter和setter方法是存取器方法

getter方法:

访问控制符function get 访问属性名():返回类型{

其它代码

return 要访问的私有属性;

}

setter方法:

访问控制符function get 访问属性名():返回类型{

其它代码

要访问的私有属性= 参数;

}

概括:封装的意义就是不想用户直接访问类内的数据,而使用getter和setter则是一种折衷的办法,当用户需要设置对象属性的时候,通过setter函数对传入数据进行验证,然后再赋值给对象,确保了数据的完整性。

另外一个,当设置了setter和getter时,属性为可写可读,当只设置setter时为只写(一般较少见),当只设置getter时,属性为只读,通过setter和getter来达到控制访问的目的。

6.8 类(Class)的访问控制

internal(包内可见)和public(包外可见)两种

6.9 包外类

包外类是类的私有单元,在package代码体外定义。

调用时,如果包中有同名类,则优先调用包外类。

========================================================

第7章命名空间

========================================================

========================================================

第8章复合与继承

========================================================

复合和继续的核心思想是重用现有的代码。

┏━━━━━━━━━━━━━━━━━━┓

┃第三部分:ActionScript. 3 核心类┃

┗━━━━━━━━━━━━━━━━━━┛

================================================

第11章ActionScript. 3 核心类和全局函数

================================================

11.1 ActionScript3 中核心类和函数的变化及原因

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓

┃引用原话: ┃

┃┃

┃核心类和全局函数是什么?简单地说,就是处于顶级包中的类和函数。从代码编写上说,我们可以在任何地方直┃

┃接调用它们,而不需要导入包或写全饰名称。从功能上说,它们是一门编程语言中最基础的类和函数,也是最常用到┃

┃的功能;从包路径上说,它们处于顶层,在顶级包(Top-Level Package)中。┃

┃┃

┃在ActionScript3中,顶级包已经发生了很大的变动。ActionScript2中我们熟悉的很多全局函数和类,在┃

┃ActionScript3中都不再是顶级包中的成员了。比如,getTimer()、setInterval()函数就不再是全局函数,而┃

┃MovieClip类、Sound类也已经不再是顶级类。在ActionScript3中,在使用它们之前,必须使用import导入它们所在┃

┃的包。┃

┃ActionScript3的核心类有多少?ActionScript2中可以全局访问的类有40多个,全局函数(包括未公开的)有70 ┃

┃个左右;相比之下,ActionScript3处于顶级的核心类只有28个,全局函数仅21个,另加全局常量4个。┃

┃那么为什么会发生这么大的变化呢?┃

┃┃┃

┃┃┃┃ActionScript. 3 中核心类和函数的变化及原因┃

┃┃

┃和ActionScript2 中混乱的核心类和全局函数进行比较,就可以明白ActionScript3中不得不进行变革的原因。┃

┃ActionScript2拥有过多的核心类和全局函数,是非常混乱和不成熟的。先说说ActionScript2中类的架构:属于┃

┃显示对象的MovieClip、Video、TextField、Button,属于网络API方面的LoadVars、NetConnection、NetStream,属┃

┃于绘图方面的一些类,等等,还有一些其他杂七杂八的类都被放在顶级包中。再看看整个系统架构,这些顶级类和相┃

┃当一部分非顶级类都是直接继承自根类Object类的。在ActionScript2中,顶级包和flash.*包中总共才69个类,居然┃

┃有近三分之一直接放在了顶级包中,近三分之二直接继承根类Object。这样的系统架构是极不优雅的,不利于语言的┃

┃进一步完善。┃

┃再看全局函数中的不合理之处:getURL()、setInterval()、gotoAndStop()等不应该成为全局函数,而应当分别┃

┃归类在网络、工具、视觉元件这样的包中,并划分给特定的类才对。除此而外,还有很多为了和低版本的Flash兼容┃

┃而保留的一大堆过时的函数,比如setProperty()等。┃

┃┃

┃我们不是苛求前人,说他们的架构设计如何如何糟糕,应当怎样怎样,而是与之比较,明白进步之处,从而对现┃

┃有架构有更深的理解和领悟。可以看出,这样混乱的状况已经不能适应语言发展要求的标准,只能推翻它,重新设计┃

┃一个科学而优雅的架构。这就是ActionScript3诞生的原因和目标。一旦开始系统架构设计,首当其冲的就是顶级包┃

┃中的成员安排。┃

┃由于宣布了不与ActionScript2及1兼容,没有了历史包袱,一大堆的过时函数全部淘汰,不合理的顶级类(核心┃

┃类)和全局函数都重新进行了划分。一些不合理的全局函数分别放到相应的包(package)中,比如getURL(),就被┃

┃ActionScript3中的https://www.doczj.com/doc/7d5776940.html,包的navigageToURL()替代了;setInterval()函数被放置到了flash.util包中。而不应┃

┃放在顶级的一些原核心类在重新调整,也被放到了其它的包中┃

┃┃

┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

11.2 核心类的数目和列表

核心类:(28个,7类)

根类:Object

语言结构:Class(类)、Function(函数)、Namespace(命名空间)、arguments(参数数组)

基本类型:int(有符整形)、Boolean(布尔)、Number(浮点)、String(字符)、uint(无符整型)

常用复杂类型:Array(数组)、Date(日期)、RegExp(正则)

XML相关类:XML()、XMLList()、Qname()

异常类:Error(异常)共11个异常类

工具类:Math(数学)

全局函数:(6类)

类型转换函数:Array,Boolean,int,Number,Object,String,uint,XML,XMLList

URI编码解码:decodeURI,decodeURICompnent,encodeURI,URIencodeURIComponent

URL编码解码:escape,unescape

判值函数:isFinite,isNaN,isXMLName

字符串转值函数:parseFloat,parseInt

控制台输出函数:trace

================================================

第12章数组:Array

================================================

12.1 数组(Array)的介绍

ActionScript3中的数组(Array)是以非零整数为索引的稀疏数组(sparse array).所谓稀疏就是指数组元素可以是不同数据类型,不支持类型化数组(typed array).

12.1.1 访问数组元素

数组索引从0开始

12.1.2 数组的长度

ActionScript3的数组是可变长度数组,可以使用数组的length属性访问数组长度

1.使用length属性可以返回数组长度

2.向length属性赋值,将改变数组的长度,超出当前元素的部分会使用空值作填充

3.向超出数组length值的索引赋值时,数组会自动增加长度,中间部分会用空值作填充

4.向length属性赋值时,如果低于当前length值,则减少的数组索引将被自动删除

12.2 数组(Array)的基本操作

增、删、查、改、排序

12.2.1 查找:indexOf、lastIndexOf

查找元素,找到就返回索引位置,如果找不到,返回-1

indexOf 从左到右

lastIndexOf 从右到左

indexOf/lastIndexOf(查找元素[,查找起始位置])

查找时使用的是=== 全等于条件,不作数据类型自动转换,所以"123"与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,...插入元素n)

删除起始索引可以为负数,即从结尾倒数第负数个元素开始向后删除,-1则为倒数第一个元素

2.删除指定起始点后的指定数量元素

数组.splice(删除起始索引,删除数量)

3.删除指定起始点后的所有元素

数组.splice(删除起始索引)

4.在数组某索引位后,插入元素

数组.splice(删除起始索引,0,插入元素1,插入元素2,...插入元素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([排序方式|比较函数]):Array

1.不提供参数时,将按默认的ascii排序规则排序

2.传入排序方式:排序方式其实就是Array类内置的一组常量

Array.CASEINSENSITIVE 值为1 ,大小写不敏感顺序排序,数字按从小到大

Array.DESCENDING 值为2 ,按字母倒序

Array.UNIQUESORT 值为4 ,必须唯一性排序,如果排序元素中有重复,结果将返回0(即放弃排序)

Array.RETURNINDEXEDARRAY 值为8 ,sort或sortOn函数排序后返回排序后的索引列表,保持原数组不变

Array.NUMERIC 值为16,强制sort和sortOn函数对数值采用从小到大排序,按数值排序时必须用此

排序方式可以用| 分隔开作为一组参数传入sort或sortOn,也可以将对应值相加直接传入

3.比较函数

function 函数名(参数A:类型, 参数B:类型):int{

}

排序时,会自动匹配所有两个参数进行比较,

当返回值为1时,参数A对应元素排到参数B对应元素后

当返回值为0时,参数A与参数B位置保持不变

当返回值为-1时,参数B对应元素排到参数A对应元素前

sortOn("name"[,排序方式|比较函数]):Array

sortOn用于对复杂型数据数组进行排序

[详细请看书p211,此节笔记无法清晰记录]

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

(本节笔记略) p214

================================================

第13章字符串:String

================================================

13.2.1 运用charAt()和charCodeAt() 取字/取字Unicode码

字符对象.charAt(索引)

获取索引指定处的字符,索引从0开始

字符对象.charCodeAt(索引)

获取索引指定处的字符的Unicode整型值。

Flash,AS3.0教程-代码的位置

Flash,AS3.0 教程:代码的位置 篇一:Flash AS3.0 教程:代码的位置 Flash AS3.0 教程:代码的位置 第一*课.件>网 f 早期版本的 ActionScript 代码可以写在帧、 按钮、 影片剪辑、 as 文件等位置, 而 Flash AS3.0 代码的位置发生了重大的改变,只能写在帧及 as 文件中。 虽然 Flash AS3.0 支持把代码写在时间轴中,但在实际应用中,如果把很多的代码放在时 间轴中,会导致代码很难管理。或者说,用类来组织大量的代码更为合适,因为类代码都是放 在 as 文件中的。 除了把代码放在时间轴上,还可以把代码放在外部文件中,比如,放在服务器的 txt 文件 中,然后把这些外部数据加载到 fla 文件里。 外部文件代码 以往都是在时间轴上写代码,编写的程序一般只有多层一帧的特点,其中最顶层专门来 放置代码。在这种模式中,假如程序比较大,需要几百行代码来实现,甚至更多,代码全部放 在同一个地方,光是查看就很不方便,需要打开 Flash 软件,然后找到帧及动作面板,最后进 行翻页查看代码。 实际上,对于一个代码较多的程序,可以把代码分成几个大的功能模块,每个模块代码 放在一个 as 文件中,这样不管是查看还是进行其他的管理都较方便。 除了使用 Flash IDE ,可用记事本来编写代码,这样速度更快,写完代码后把扩展名改为 as 可以达到同样的效果,如果不是很熟悉编程,还是使用 Flash 自带的编辑器编写为好,可以 使用代码提示。 下面通过一个例子来了解如何编写 as 文件中的代码,如何把 as 文件中的代 码导入到时间轴中。 例:(代码与美工的分离) 1、打开 Flash,选择【新建】命令,在弹出的【新建文档】对话框中选 ActionScript 文 件,单击确定按钮,新建一个 as 文件,保存名为“shift.as”。 2、在 as 文件中输入代码,代码的编写方法与在时间轴上是一样的: this.addEventListener(Event.ENTER_FRAME , onEnterframe) var shift : Number = 0 var startX = 200 var startY = 200 var r = 60 graphics.lineStyle(0) graphics.moveTo(startX + r , startY) 1 function onEnterframe(evt: Event) { graphics.lineTo(startX + r * Math.cos(shift),startY + r * Math.sin(shift)) 1 / 15

ActionScript3 Flash编程无基础入门教程整理版

ActionScript3 Flash编程无基础入门教程 如果你觉得https://www.doczj.com/doc/7d5776940.html,上的很多文章看太深奥,或者你是一个没有任何程序基础想学as,或者你连flash都不会。那么这篇文章就是你茫茫大海上的明灯,让你找到学习as的方向。 做过Flash动画的Flash爱好者们都知道,要做好一个Flash动画,AS是必不可少的,即使只是很简单的几句代码也能起到整个Flash画龙点睛的作用。这里我只简单的介绍一下AS的基本常识。 首先我们要了解AS要写在什么地方,什么时候AS会被触发执行。 1、帧: 写在关键帧上面的AS,当时间轴上的指针走到这个关键帧的时候,就写在这个帧上面的AS就被触发执行了。常见的例子有在影片结尾的帧写上stop() 等。操作方法就是点选关键帧,然后打开AS面板。 2、按钮: 不同于帧上面的AS,按钮上面的AS是要有触发条件的。要把AS写在按钮上,操作方法是点选目标按钮,然后打开AS面板。举个例子能说的更明白。 假设有一个动画,要让它在播放完同时停止,那么,你要做的就是在这个动画的最后一帧写AS stop(); 再假设有个按钮,效果是按下按钮后停止播放,那么步骤如下。 做一个按钮,放到主场景,点选按钮,然后打开AS面板。现在如果也在按钮上写 stop(); 那么,输出的时候就会提示错误。正确的应该这样写 on(release){ stop(); } 这里要比帧的动画多这些代码: on(release){} , 整个代码翻译过来就是: 当(松开){ 停止 } 红色的代码表示鼠标的触发事件事件之一,这里用的是release 松开,按钮的常用事件: release 松开 releaseOutside 在按钮外面松开 press 按下 rollOver 鼠标进入按钮的感应区 rollOut 鼠标离开按钮的感应区 现在很明确了:写在按钮上面的AS一定就是这种格式的: on(事件){要执行的代码} 3、MC(电影剪辑) 如果你看懂了上面的内容,那么写在MC上面的AS和写在按钮上的大同小异。操作方法就是点选MC,然后打 开AS面板。看个例子 onClipEvent(load){ stop(); } 同样,MC需要一个事件来触发AS的执行。翻译这段代码就是 当剪辑(载入){ 停止 } 红色代码同样表示一个事件。MC的事件有下面这些: load 载入,当MC出现的时候执行。也就是除非卸载这个MC,否则load事件内的代码只执行一次

dynaform教程

eta/DYNAFORM 培训手册 版本5.2 美国工程技术联合公司 Engineering Technology Associates, Inc. 1133 E. Maple Road, Suite 200 Troy, MI 48083 Tel: (248) 729-3010 Fax: (248) 729-3020 Email: support@https://www.doczj.com/doc/7d5776940.html, eta/DYNAFORM team November 2004

Engineering Technology Associates, Inc., ETA, ETA 徽标和 eta/DYNAFORM 都是美国工程技术联合公司的注册商标。所有的商标和名称都是由ETA版权所有。 Copyright 1998,1999,2000,2001,2002,2003,2004 Engineering Technology Associates, Inc. All rights reserved.

目录 介绍 (1) 数据库操作 (2) I. 创建eta/DYNAFORM 数据库,设置分析参数 (2) II. 练习一些辅助的菜单操作 (4) III. 显示/关闭零件层(Turning On/Off) (6) IV. 编辑数据库中的零件层 (7) V. 当前零件层 (8) 网格划分 (10) I. 坯料网格划分 (10) II. 曲面网格划分 (12) III. 网格检查 (14) IV. 快速设置和传统设置的对比 (18) 快速设置 (19) I. 从Lower Tool中分离出Lower Ring (19) II. 快速设置界面 (23) III. 定义工具 (23) IV. 定义坯料 (26) V. 设置分析参数,求解计算 (29) 传统设置 (35) I. 从LOWER TOOL等距偏移出UPPER TOOL (35) II. 创建Lower Ring零件层 (38) III. 分离LOWRING 和 LOWTOOL零件层 (43) IV. 拉延类型设置 (43) V. 工具定义 (44) VI. 定义坯料,设置工艺参数 (46)

Flash AS3教程:创建好看的遮罩动画效果

Flash AS3教程:创建好看的遮罩动画效果(1) 1、新建Flash文件,导入所需的图片到舞台,设置舞台属性的宽、高同图片相同大小。 2、将图片设置为左对齐、上对齐。右键单击图片转换成影片剪辑,命名为“Background”,设置注册点为居中。图1: 3、将图层1改名为背景,在属性面板中输入实例名称:“backgroundImage” 锁定。图2: 4、新建一个图层,用椭圆工具画一个禁止笔触的50*50的圆,填充色任意。 5、把圆转换成影片剪辑,设置如下。图3:

6、删除舞台上的圆,图层改名为as。至此fla的美工已全部完成。 7、新建ActionScript文件,编写一个外部的MyMask.as文件。在编译器中输入代码: package { import flash.display.MovieClip; public class MyMask extends MovieClip { //Mask’s x and y speed public var speedX:Number;

public var speedY:Number; //Set the given scale for this mask, when we create a new //mask object public function MyMask(scale:Number) { this.scaleX = scale; this.scaleY = scale; } } } 这是一个名为MyMask.as的遮罩类,保存在fla文件的同一目录下。 8、切换到fla,在as层输入代码: //We use an array to hold all our masks. //(Except the mask that follows our cursor) var masks:Array = new Array(); //We add all of the masks to a container var maskContainer:Sprite = new Sprite(); //Set the maskContainer to be the image’s mask backgroundImage.mask = maskContainer;

金鹰Flash cs3 AS3.0编程视频教程

金鹰Flash cs3 AS3.0编程视频教程合集 教程总共有1352集,涵盖了Flash CS3 ActionScript 3.0编程的方方面面,从基础到高级教起,讲解非常详细!! 文章来源:https://www.doczj.com/doc/7d5776940.html,/view-225-1.html 1)金鹰《FLASH.CS3活学活用》225讲 2)《Flash CS3 AS3类入门到精通》-A盘B盘200讲 3)《Flex中文入门视频教程flex》156讲 4)《Flash CS3 ActionScript 3.0组件高级编程》276讲 5)《flash ActionScript3.0实用教程》208讲 6)《Flash CS3 AS3声音视频高级编程》165讲 7)金鹰电脑教程Flash.ActionScript编程视频教程Flash 8.0版本122讲 站长视频教程网该套教程总共包括7个完整版的FLASH视频教程,分别是: (1)Flash CS3 ActionScript 3.0组件高级编程 (2)Flash CS3 ActionScript 3.0类编程入门到精通 (3)Flash CS3 AS3声音视频高级编程 (4)Flash ActionScrip 3.0实用教程 (5)金鹰FLASH.CS3活学活用 (6)Flex3.0快速入门 (7)金鹰电脑教程Flash.ActionScript编程视频教程Flash 8.0版本122讲 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ 1、《Flash CS3活学活用》内容介绍: Flash CS3是ADOBE公司最新出品的FLASH版本,在这里我们将进行更深层次的学习,对这个版本的新功能和新特色进行全面、简单的讲解,使大家更好的掌握和学习。

dynaform回弹分析详细教程

基于Dynaform的JL70右连接板零件成形 工艺及模具设计 李君才 (重庆工商大学 机械设计制造及其自动化专业 05机制2班 ) 摘要: 实践表明,采用有限元数值仿真技术对零件成形过程进行模拟,并根据仿真结果进行冲压工艺规划和模具的设计,以改良传统冲模设计与制造过程中耗时长、成本高等缺陷,把制造过程中可能出现的问题集中在设计阶段解决,以便快速经济地制造模具,提高零件质量。 本设计是基于有限元分析软件DYNAFORM 的成形过程的仿真分析与模具设计。首先进行前处理设置,将仿真需要的各种参数输入进去,然后进行仿真的后处理分析。通过对仿真的后处理分析,了解各种参数对成形的影响,进一步提出改进措施,重新输入参数进行分析。然后在基于仿真分析的基础设计模具,这样保证了模具结构的合理性。 关键词:模拟仿真、DYNAFORM、模具设计、工艺参数优化

Base on Dynaform JL70 right Junction panel Ban parts forming process and die design Li Juncai (Chongqing Technology and Business University ,mechanical design automation and manufacturing professionals ,05 mechanism classes two) Abstract: Practice shows that the use of finite element simulation technology to partsforming process modeling, and simulation results are in accordance with the planning process and tamping die design, to improve the design and manufacture of traditional die in the time-consuming process of a long, the cost of higher defects in the manufacturing process problems that may arise in the design phase concentrated solution for rapid economic and die manufacturing, improve the quality of parts. The design is based on finite element analysis software DYNAFORM the process of forming simulation analysis and die design. First set up to deal with before, the simulation will need to enter into the various parameters, and then to simulate the post-processing analysis. Through the simulation of the post-processing analysis, an understanding of various parameters on forming the impact of further improvement measures, re-enter the parameters for analysis. Then based on the analysis of the simulation based design mold, such a guarantee die structure is reasonable. Keywords: simulation、DYNAFORM、mold design、Technological parameter optimization

Flash MP3 Music Player Tutorial – AS3(已译)

Flash MP3 Music Player Tutorial – AS3 原文地址: https://www.doczj.com/doc/7d5776940.html,/view/tutorial/How-To-Create-Flas h-Music-Player-With-AS3/57051 标签:as3, 组件, flash 播放器r , mp3 播放器, music 播放器 发布于: Flash Tutorials 在本教程中, 你将学习如何使用AS3和XML 制作一个音乐播放 器 。在文中,我将一步步的讲解元件的设计和代码的编写。你也 将学到如何为按钮添加效果,如何制作右键选单和使用XML 文 件轻松方便的修改、更新你的音乐信息。用文中的方法你只需一 会儿的功夫就能做一个音乐播放器。所以,Come on! Let's enjoy it~~ 具体效果如下: 即将开始 我们将用到Tween 效果. 点击这里下载 TweenMax. 我将把AS 的解释放在代码区。你只需要“小心”跟着就可以了。我确信即使你还不懂AS ,你也能做出这个播放器。让我们来开始制作它吧~~ 步骤 1 – 准备文件夹

我们必须建一个主文件夹来存放所有的子文件夹和文件。建一个新文件夹并作如下操作: 1.将TweenMax的"com"文件夹放到这主文件夹中。 2.建一个名为“musics”的新文件夹. 把你的歌放到里面。 3.建一个AS3 的Flash项目和一个XML项目(用DW或者记事本) 4.保存它们。 你需要的文件夹如下: 步骤 2 –搭建舞台 打开你刚才保存的Flash项目。这里每个属性都是可以修改的。我用的是样本值。舞台大小为300×200。背景颜色(# 191611)。 步骤 3 –制作播放器的背景 我们用一个长方形(Buttonrectangle)和一个正方形(Coversquare)作为背景图片。线条颜色(#3E362D),填充颜色(#2F2922)。布置如下。

box2d入门教程

Box2DFlash v2.0.2User manual Largely cribbed unauthorized from the Box2D manual,copyright2007-2009Erin Catto. About Box2DFlash is a2D rigid body simulation library for games.Programmers can use it in their games to make objects move in believable ways and make the world seem more interactive.From the game's point of view a physics engine is just a system for procedural animation.Rather than paying(or begging)an animator to move your actors around,you can let Sir Isaac Newton do the directing.Box2DFlash is written in AS3,and resides in the Box2d namespace.Most of the types defined in the engine begin with the b2prefix,to match the C++version. Prerequisites In this manual I'll assume you are familiar with basic physics concepts,such as mass, force,torque(扭转力),and impulses(推力).If not,please first consult(翻阅)the many tutorials provided by Chris Hecker and David Baraff(google these names).You do not need to understand their tutorials in great detail,but they do a good job of laying out the basic concepts that will help you use Box2D. Wikipedia is also an excellent source of physics and mathematics knowledge.In some ways it is more useful than Google,because it has carefully crafted content. This is not a prerequisite,but if you are curious about the inner workings of Box2D,you can look at these articles. Since Box2DAS3is written in Actionscript3,you are expected to be experienced in this.If you come from an AS2background,you may find it easier to start on an easier project before using Box2D,but it is not impossible. Core Concepts Box2D works with several fundamental objects.We briefly define these objects here and more details are given later in this document. rigid body(刚体) A chunk of matter(物质)that is so strong that the distance between any two bits of matter on the chunk is completely constant.They are hard like a diamond.In the following discussion we use body interchangably with rigid body.

Dynaform软件的板料冲压成形操作指引

Dynaform 软件的板料冲压成形操作指引 1 常用仿真术语定义: 冲压成形:用模具和冲压设备使板材产生塑性变形获得形状、尺寸、性能合乎要求的冲压件的加工方法。多在室温下进行。其效率高,精度高,材料利用率也高,可自动化加工。 冲压成形工序与工艺: 剪切:将板材剪切成条料、块料或具有一定形状的毛坯的加工工序称为剪切。分平剪、斜剪和震动剪。 冲裁:借助模具使板材分离的工艺。分为落料和冲孔。 落料--从板料上冲下所需形状尺寸坯料或零件的工序; 冲孔-- 在工件上冲出所需形状孔的工序。 弯曲:在弯曲力矩作用下,使平板毛坯、型材、管材等产生一定曲率和角度,形成一定形状冲压件的方法。 拉深:冲裁得到的平板毛坯成形成开口空心零件的冲压加工方法。 拉伸参数: ? 拉深系数m :拉深零件的平均直径 d 与拉深前毛坯 D 之比值m, m = d/D ; ? 拉深程度或拉深比:拉深系数 m 的倒数 1/m ; ? 极限拉深系数:毛坯直径 D 确定下,能拉深的零件最小直径 d 与D 之比。 胀形:指将材料不向变形区转移,只在变形区内产生径向和切向拉深变形的冲压成形方法。 翻边:在毛坯的平面或曲面部分的边缘,沿一定曲线翻起竖立直边的成形方法。 板材冲压成形性能评价指标:硬化指数n 、厚度方向系数γ、成形极限图。 成形极限:是指冲压加工过程中所能达到的最大变形程度。 2 Dynaform 仿真分析目的及流程 ETA/DYNAFORM 5.7是由美国工程技术联合公司(ENGINEERING TECHNOLOGY ASSOCIALTES, INC.)开发的一个基于LS-DYNA 的板料成形模拟软件包。作为一款专业的CAE 软件,ETA/DYNAFORM 综合了LS-DYNA 强大的板料成形分析功能以及强大的流线型前后处理功能。它主要应用于板料成形工业中模具的设计和开发,可以帮助模具设计人员显著减少模具开发设计时间和试模周期。基于Dynaform 软件的仿真结果,可以预测板料冲压成形中出现的各种问题,如破裂、起皱、回弹、翘曲、板料流动不均匀等缺陷,分析如何及时发现问题,并提供解决方案。Dynaform 仿真分析分析的步骤和流程如下图: 冲压成形 分离工序 剪切 冲裁 修边 成形工序 弯曲 拉深 胀形 翻边

Flash as3实例教程:小球顶箱子实例

Flash as3实例教程:小球顶箱子实例 在这个Actionscript 3教程中,我将为你展示怎样创建一个躲避被一个球碰撞的盒子。看上面的效果(单击那白色的球使它运动).让我们马上开始吧! 设置环境 1.创建一个新的Flash Actionscript 3影片(340x200). 2.在舞台上画一个矩形.设置大小为20x20. 3.将矩形转换为MC.给它取一个你喜欢的名字,将注册点移到中心! 4.设连接属性中MC的类名为"Box".如果你对MC连接属性感到陌生的话,请查看Actionscript 3 扩展类教程. 5.现在在舞台上画一个10x10的园. 6.将园转换为MC.给它取一个你喜欢的名字,将注册点移到中心! 7.设连接属性中MC的类名为"Ball". 8.从舞台上删除园和矩形. 进入Actionsctipt9. 在第一帧输入下列Actionscript代码. //这个数组包含所有的盒子 varboxes:Array = new Array(); //设置球的速度 varballSpeed:Number = -4; // 循环添加8个盒子到舞台 for (vari = 0; i< 9; i++) { //创建一个盒子 varbox:Box = new Box(); //添加一个位置 box.y = 150; box.x = box.width * i * 1.5 + 40; //添加一个盒子到数组 boxes.push(box); //在舞台上添加一个盒子 addChild(box); } //创建一个盒子并设置它的右边 varball:Ball = new Ball(); ball.x = 320; ball.y =155; //使球看起来象按钮(手形光标) ball.buttonMode = true; // 把球添加到舞台上 addChild(ball);

小学校本课程flash教程

flash社团教程 一、基础动画制作要领(理解背诵) 1、首先要有运动的主体 2、动画至少要有两个关键帧 3、相邻两个关键帧的状态要不一样(可以是位置、大小、倾斜角度等) 4、在两个关键帧之间创建补间动画 5、牢记一个图层只可以让一个物体运动 6、按下Ctrl+Enter测试影片 (简记:一主体,两关键,不同状态,中补间,牢记一层仅有一动画) 跳动的小球例子: 1、先在舞台用椭圆工具画一个圆并填充颜色 2、用选择工具把小球全部选中,然后在选中区域右键选择转换成元件 3、在时间轴的任意一个空白小格子上右键插入关键帧,并把这一帧上的小球往下拉 4、在两个关键帧之间右键,创建补间动画 5、按下Ctrl+Enter测试影片 闪动的星星: 1、先用星形工具在舞台画一个星星 2、用选择工具把小球全部选中,然后在选中区域右键选择转换成元件 3、在时间轴的任意一个空白小格子上右键插入关键帧,并把这一帧上的星星用任意变形 工具拉大 4、在两个关键帧之间右键,创建补间动画

5、按下Ctrl+Enter测试影片 Flash as3.0编程基础 1、声明(设置)变量用var (例如声明一个变量a可以这样写 var a;) 2、为变量或者属性赋值用等号 =(例如为前面声明的a赋值可以这样写 a=2;) 3、数字的运算符号,一一对应:加(+) ;减(-) ;乘(*);除(/) (例如把a的两倍赋值给a可以这样写 a=a*2;) 4、判断的符号:等于(==);不等于(!=);大于(>);小于(<) (例如:判断a不等于3的话就把a的值改成3可以这样写 if(a!=3) { a=3; } 上面两句话可以这样理解:如果a不等于3,则把a的值改为3,否则(如果a=3)什么也不做 5、if语句解释,格式一般如下 if(条件){条件成立的时候执行的语句}else{条件不成立的时候执行的语句} else到后面可省略 尝试写出如下要求的程序: 1、声明三个变量a,b,c;给a赋值为1,给b赋值为2;判断如果a大于b,则 c等于a减b,否则c等于a加b 怎么用代码控制我们的flash动画? 尝试着在已经做好的动画的时间轴的关键帧上右键选择【动作】,在编辑区域写入stop(); 再按下Ctrl+Enter测试影片看一下有什么现象出现,对比没有写入代码的动画有什么区别? 1、代码控制动画首先我们要知道代码写在哪里?写在关键帧上(as3.0的特性, 用flash cs3和flash cs4都是) 2、我们要控制的东西都必须要有名字 3、最常用的两句话:停止stop();播放play();

Flash as3实例教程:鼠标事件控制图形移动

Flash as3实例教程:鼠标事件控制图形移动 本例为Flash AS3.0菜鸟学飞系列教程,在本Flash AS3.0教程中我们将通过运用if-else 语句来实现按钮的控制播放和暂停,希望能给朋友们带来帮助~~ 一个按钮控制播放和暂停(if-else语句的运用) 1、新建Flash文档文件,命名、保存。 2、把图层1,改名为mc。选椭圆工具,在场景中画一个圆。右键单击圆,在下拉菜单中选【转换为元件】在弹出的面板中选类型:【影片剪辑】注册点放在中间,在属性面板中命名为mc。选中选择工具,双击场景中的圆,进入影片剪辑的编辑状态,在图层1的第30帧插入关键帧,把圆拖动一段距离,右键点击1至30帧的任意帧,在下拉菜单中选【创建补间动画】拖动一下播放头,小球已经可以移动了。选中第1帧,打开动作面板输入代码:stop(); // 让小球停止播放 3、返回场景1,添加图层2,命名btn。选矩形工具,在场景中画一个矩形。转换为【按钮】在属性面板中命名为btn。 4、添加图层3,命名为as。输入下面代码: //定义布尔值 varisPlaying:Boolean //注册单击事件的接收者 btn.addEventListener(MouseEvent.CLICK,onClick) //定义事件的接收者 function onClick(e:MouseEvent) { //布尔值取反 isPlaying=!isPlaying //如果布尔值为true if(isPlaying) { //播放影片剪辑实例 mc.play() //如果布尔值为false }else { //停止播放影片剪辑实例 mc.stop() } } 5、按Ctrl+Enter组合键,测试效果。

Flash学习As3音乐播放器教程

Flash学习As3音乐播放器教程 那么开始吧!大家先下载一下源文件。对着源文件的结构看教程。我将整个播放器做到一个元件中(Control_panel),再给它绑定一个类(sound_lib.Control_panel),所有的代码就写在这个类里面了。这样做的好处是:日后要用到它时,直接把Control_panel元件拖到你要用的地方就Ok了! 接下来就是code了:要做音乐播放器,最重要的两个类当然就是Sound和SoundChannel。先试一下,怎样让一首mp3播放起来: 1. //建立一个Sound类 2. sound=new Sound() 3. //加载mp3文件 4. sound.load(new URLRequest(“你的mp3路径”)) 5. //播放 6. sound.play() Ok了! 完整代码: 1. package sound_lib{ 2. import flash.display.* 3. import flash.media.Sound 4. import flash.media.SoundChannel 5. import https://www.doczj.com/doc/7d5776940.html,.URLRequest 6. public class Control_panel extends MovieClip{ 7. private varsound:Sound 8. private constsound_url:String="sound_data/m01.mp3" 9. public function Control_panel(){ 10. init() 11. } 12. private function init(){ 13. sound_init() 14. } 15. function sound_init(){ 16. sound=new Sound() 17. sound.load(new URLRequest(sound_url)) 18. sound.play() 19. } 20. } 21. } 22. Ctrl+Enter一下。是不是听到音乐了?啊?没听到?看看sound_data目录下是否放了mp3

Flash AS3.0教你射击类游戏的制作

Flash AS3.0教你射击类游戏的制作 教程贴士:本例为Flash AS3.0实例教程,介绍射击类游戏的制作,主要分游戏界面的制作和类的编写两部分,从简单的开始做起,跟着教程动手做做看吧。解析打飞机游戏的制作过程 (一)演示:这款游戏可能大家都玩过。敌机在蓝天上来回飞行,左右箭头键控制火炮在草地上左右移动。按下空格键发射子弹,击中敌机后,敌机爆炸。得分:记录击中的敌机数。剩余子弹:记录子弹的数量。游戏运行过程图:全部文件及作用图:游戏文件AirRaid.fla程序界面及元件AirRaid.as文档类程序的入口。控制整个程序的逻辑顺序,逻辑结构关系。 AAGun.as绑定库中的火炮的类控制火炮 AirPlane.as绑定库中的敌机的类控制飞机 Bullet.as绑定库中的子弹的类控制子弹UI(界面)部分AirRaid.fla文件结构AirRaid.fla文件:是主文件,分为5个图层3帧,帧上有代码,绑定了文档类AirRaid.as 。图:界面元素1、背景层:绘制的蓝天、草地、山峦。 2、成绩显示层:"得分:" 动态文本:实例名showScore "剩余子弹:" 动态文本:实例名showShots。 3、按钮及提示层:第1帧:开始按钮及说明,实例名:

startButton。第3帧:重新开始按钮及结束提示,实例名playAgainButton。 4、代码层:3帧每帧都有代码。 5、标签层:第1帧,标签名称:intro 第2帧,标签名称:play 第3帧,标签名称:gameover 。代码层的每帧代码及解释:第1帧代码:importflash.events.MouseEvent; stop(); startButton.addEventListener(MouseEvent.CLICK,clickStart); functionclickStart(event:MouseEvent){ gotoAndStop("play"); }

Flash AS3.0 教程 函数之形式参数和实际参数

Flash AS3.0 教程函数之形式参数和实际参数 Flash AS3.0 教程函数之形式参数和实际参数函数的参数是外界与函数内部通信的方法,对于有参函数来说,函数调用时函数有数据传递的关系。 看代码: //调用函数 max(5,7); //定义函数 function max(x:int,y:int):int { if(x > y) { x = x; } else { x = y; } return x; } 如果一个函数有返回值,可使用return语句,并在定义函数时声明返回值的类型。 上面的代码在函数调用过程中发生了数据传递,先把5和7传递给x和y,再通过比较后返回大的值7,传递给函数max(),所以max(5,7)的值为7。 在定义函数时,括号中的变量称为形式参数(简称形参)。上面定义max()函数时的x和y就是形参。在调用函数时,函数名后面括号中的变量或表达式称为实际参数(简称实参)。如调用max()函数时的5和7。 函数的实参可以是任意数据类型的变量或表达式。 参数对于函数来说是非常重要,一个好的函数其参数应是不多不少。例如,toFixed()函数可以保留小数点的倍数,但它返回的是字符串。下面编写一个返回值是数字的保留小数点的函数: var a:Number = 2.55555; //保留两位小数并输出 trace(保留小数点(a,2); //定义函数 function 保留小数点(a:Number,b:uint):Number { //10的b次方 var t:uint = Math.pow(10,b); //a*t取整后除t并返回 return Math.round(a*t) / t; } 保留小数点的函数,需要两个参数,一个代表要保留小数点的数值,一个是保留小数点的位数。 对于形参很多的函数,可用对象来代替,下面函数求两点间的距离,用对象p1代表第一个点的坐标,用p2代表第二点的坐标:

Flash_as3.0实例教程100例

实例一利用缓动类实现图片滚动点击放大效果 //缓动类不在flash包中在fl包中所以要先导入 import fl.transitions.Tween;//导入缓动类 import fl.transitions.TweenEvent;//导入缓动事件 import fl.transitions.easing.Regular;//导入缓动效果中有规律的 var arrTupian:Array=[];//存放图片的数组 var tweenscaleX:Tween;//用来控制图片宽高的缓动类 var tweenscaleY:Tween; var datu:MovieClip; for (var i:int=0; i<8; i++) { var xiaotu:MovieClip =new Pic();//这里Pic是库中一个存放图片的类文件 addChild(xiaotu); xiaotu.gotoAndStop(i+1); xiaotu.width=120; xiaotu.height=100; xiaotu.x=xiaotu.width/2+i*(xiaotu.width+10); xiaotu.y=420; arrTupian.push(xiaotu); xiaotu.addEventListener(Event.ENTER_FRAME ,dongf);//为每个小球添加移动帧频函数} function dongf(e) { var mc:MovieClip=e.target; mc.x-=6; if (mc.x<0-(xiaotu.width/2+10)) {//如果该图片出了场景则放在最后一张图片的位置mc.x=xiaotu.width/2+7*(xiaotu.width+10); } mc.buttonMode=true; mc.addEventListener(MouseEvent.MOUSE_OVER ,overf);///鼠标移过时候停止移动mc.addEventListener(MouseEvent.MOUSE_OUT,outf);// } function overf(e) { for (i=0; i

as3.0声音教程

再学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音乐文件放在一个文件夹内。 var _request:URLRequest = new URLRequest(url); _sound.load(_request); _channel=_sound.play(); bfjdt_mc.visible=false; //添加不断更新监听事件 addEventListener(Event.ENTER_FRAME,yx); function yx(event:Event):void { loaded=_sound.bytesLoaded; total=_sound.bytesTotal; _length=_sound.length; position=_channel.position;

相关主题
文本预览
相关文档 最新文档