ActionScript语言基础

注释

支持行内注释和多行注释:

行内注释

//这里是行内注释
var i:int;
var x:int; //这是也是行内注释

多行注释

/*
  这是
  一段
  多行注释
*/

变量

ActionScript支持比JavaSctipt所支持的更新的ECMAScript标准实现版本。

变量名命名规则:

可以包含字母、数字、下划线和美元符号,但不能以数字开头, 区分大小写。

变量数据类型的规则:

于JavaScript不同,ActionScript的变量要使用严格的数据类型,也就是说,要在变量后赋予该变量的值,必需是定义该变量时所声明的类型,或者兼容的类型。

var $number:Number;
$number = "test" //语法错误,右值必需是一个数字,而不是字符串

类型检查

  • ActionScript同时支持静态类型检查和动态类型检查。
  • 静态类型检查在编译时执行,由编译器负责进行类型检查,返回检查结果给开发者;
  • 动态类型检查则是Flash Player在程序运行期间对变量类型的管理。

顶级类

  • 类是方法和属性的集合,并且类被封装在包中。
  • Flex3中有几本数据类型的概念,它们在Flex4都被封装成了类,放在顶层的包中,顶层包是默认可用的,所以仍然可以随时使用它们。

Array Boolean Class Date int Number Object String unit Vector XML XMList

  • 使用顶层类不需要事先使用import语句导入包,即可直接创建类的实例:
var $string:String = new String("HELLO");
//更简洁的方式:
var $str:String = "HELLO";
var $xml:XML = <root><node></node></root>;
var $array:Array = ["item1","item2","item3"];
var $obj:Object = {x:1, y:2, z:3};

特殊数据类型

特殊数据类型就是保留字和保留值,使用它们来创建变量就会发生错误:

*, void, undefined, null, NaN(not a number)

循环

for循环:

for(var i = 0; i < 10; i++ ){
	trace(i);
}
var myArray:Array = ["item1","item2", "item3"];
//这种形式的循环适合操作XML或者XMList对象
//这种形式的循环是按照属性名迭代的,而数组的属性名就是数组的索引
//大多数情况下都要使用String类型的属性名,针对数组的索引,直接使用int很可能会报错,而使用String则Flash Player会自动转换成数值
for(var i:String in myArray) {
//查看trace输出需要下载Flash Player 的debug版本,并使用特定的浏览器(如IE进行调试)
trace(myArray[i]);
}
var myObj:Object = {firstName:"leo",lastName:"xu"};
for(var i:String in myObj) {
trace("Property:" + i + "=" + myObj[i]);
}
//如果只想得到每项的值,使用for each ... in 更方便
for each(var i:String in myObj) {
trace(i);
}

while和do..while循环:

...

if, else , else if判断:

...

switch循环:

...

数组

ActionScript支持三种类型的数组:

  1. 索引数组
  2. 关联数组
  3. 多维数组

索引数组:

var $array1:Array = new Array();
var $array2:Array = new Array(3);

操作

push() //添加到末尾
unshift() //添加到开头
pop() //末尾删除
shift() //开头删除
splice() //从某个位置删除,然后插入新项
$array.splice(1, 0, "leo xu");//在第二个位置添加一个
$array.splice(1, 1);//删除第二项
$array.splice(3, 2, "leo", "xu", "hahaha");//从第四个位置开始删除两项,再添加三个新项
var $array:Array = new ["leo", "xu", "hahaha"];//数组的简便初始化
//下面是数组的遍历
for(var i:int = 0; i<array.length; i++ {//使用length属性获取数组的大小
trace(array[i]);//把值输出到日志
}

关联数组:

可以存储键值对的集合.

var $map:Array = new Array();
$map["item1"] = "leo1";
$map["item2"] = "leo2";
$map["item3"] = "leo3";
trace($map["item1"]);
trace($map["item2"]);
trace($map["item3"]);
for(var key:String in $map) {
trace("key:" + key + " ,value:" + $map[key]);
}
//如果只想得到每项的值,使用for each ... in 循环
for each (var i:String in $map) {
trace("value:" + i);
}

注意:关联数组中值得存放时无序的,所以上述循环无法预言其输出顺序。

//另外一种输出键值对的方式就是直接使用Object对象
var $map:Object = new Object();
var $map:Object = {item1:"leo", item2:"xu", item3:"hahaha"};
//关联数组还可以使用点表示法来访问数组项:
trace($map.item1);
trace($map.item2);
trace($map.item3);

注意:键名中存在空格的项不适合使用点表示法来访问,会引发错误。

特殊语法

  • 花括号标识代码块;
  • ++,--是递增、递减的最快方式;
  • 比较操作符;
  • 数学操作符,要注意加号还可以连接字符串

函数和类

函数:

函数是封装了逻辑的代码块,方便重用。

类是一个封装了方法(函数)和属性(变量)的独立集合。

创建函数的要素:

作用域 function 函数名(参数列表):返回值类型 {}

作用域:

public , private, protected

CDDATA:

<![CDDATA[...]]>告诉编译器方括号中的内容不作为XML处理,应该始终把ActionScript代码放到<![CDDATA[...]]>的方括号中。

导入包:

import mx.collections.ArrayCollection;//导入ArrayCollection类
import mx.collections.*;//导入所有的类

注意:导入内容只在执行了import语句的文件内可见。

将ActionScript代码放到独立于MXML文件的文件中:

  • 可以将ActionScript代码独立放到.as后缀的文件中;
  • 然后再MXML文件中,使用如下代码引入该as文件:
<fx:Script source="xxx.as"/>

数据绑定

ActionScript支持让一个项目监听另外一个的项目的值,这种功能叫做数据绑定。

绑定有助于减轻代码量,并有效抽象出信息的发布者和使用者,加强应用程序的扩展性。

  • 不使用绑定的:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
  xmlns:s="library://ns.adobe.com/flex/spark"
  xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<s:Group>
<s:layout>

<s:HorizontalLayout/>
</s:layout>
<s:TextInput id="text1"/>
<s:Button label="copy" click="text2.text = text1.text"/>
<s:TextInput id="text2"/>
</s:Group>
</s:Application>
  • 添加绑定:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
  xmlns:s="library://ns.adobe.com/flex/spark"
  xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<s:Group>
<s:layout>

<s:HorizontalLayout/>
</s:layout>
<s:TextInput id="text1"/>
<s:TextInput id="text2" text="{text1.text}"/>
</s:Group>
</s:Application>
  • 绑定标签:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
  xmlns:s="library://ns.adobe.com/flex/spark"
  xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Binding source="text1.text"
destination="text2.text"
twoWay="true"/>
<s:Group>
<s:layout>
<s:HorizontalLayout/>
</s:layout>
<s:TextInput id="text1"/>
<s:TextInput id="text2"/>
</s:Group>
</s:Application>

使ActionSrcript变量可被绑定:

注意,可以再任何ActionScript变量上启用绑定,只需要使用到元关键字
[Bindable].

MXML中的
元关键字用于描述变量,组件和类的额外属性,另外还可以用来声明自定义组件所分发的自定义事件。

默认情况下,Flex中的东西并不都是可以被用来绑定的,可不可以被绑定,必需
显示声明

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
  xmlns:s="library://ns.adobe.com/flex/spark"
  xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Script>
<![CDATA[
[Bindable]
public var s:String = "";
]]>
</fx:Script>
<s:Group>
<s:layout>

<s:HorizontalLayout/>
</s:layout>
<s:TextInput id="text1"/>
<s:Button label="copy" click="s=text1.text"/>
<s:TextInput id="text2" text="{s}"/>
</s:Group>
</s:Application>

时间: 2024-11-08 09:54:41

ActionScript语言基础的相关文章

第一章. ActionScript 语言基础

第一章. ActionScript 语言基础 1.0. ActionScript 3.0 Cookbook 概述 1.1. 新建一个 ActionScript project 1.2. 自己定义应用程序属性 1.3. 在哪里写ActionScript 代码呢 1.4. 怎样跟踪信息 1.5. 处理事件 1.6. 响应鼠标和键盘事件 1.7. 算术运算 1.8. 逻辑运算 1.9. 运行条件语句 1.10. 运行复杂的条件语句 1.11. 某段时间反复运行一种操作 1.12. 长时间运行一个任务

Oracle SQL语言基础及环境准备_超越OCP精通Oracle视频教程培训26

Oracle SQL语言基础及环境准备_超越OCP精通Oracle视频教程培训26 本课程介绍: Oracle视频教程,风哥本套oracle教程培训是<<Oracle数据库SQL语言实战培训教程>>的第1/5套:SQL语言之基础入门及环境准备.主要学习Oracle数据库SQL语言基础介绍.PL/SQL语言介绍.数据库SQL对象与数据类型介绍.SQL语言实战环境准备等. Oracle SQL语言之基础及环境准备,课程内容详细如下: Oracle数据库SQL语言基础介绍Oracle数据

Swift语言指南(一)--语言基础之常量和变量

Swift 是开发 iOS 及 OS X 应用的一门新编程语言,然而,它的开发体验与 C 或 Objective-C 有很多相似之处. Swift 提供了 C 与 Objective-C 中的所有基础类型,包括表示整数的 Int,表示浮点数的 Double 与 Float,表示布尔值的 Bool,以及表示纯文本数据的 String. Swift 还为两个基本集合类型 Array 与 Dictionary 提供了强大的支持,详情可参考 (集合类型)Collection Types. 与 C 语言类

02 java语言基础

常量:字面值常量(字符串,字符,整数,小数,布尔,null),自定义常量,''这个不是字符常量,""这个是字符串常量 进制: 02.01_Java语言基础(常量的概述和使用)(掌握) A:什么是常量 在程序执行的过程中其值不可以发生改变 B:Java中常量的分类 字面值常量 自定义常量(面向对象部分讲) C:字面值常量的分类 字符串常量 用双引号括起来的内容 整数常量 所有整数 小数常量 所有小数 字符常量 用单引号括起来的内容,里面只能放单个数字,单个字母或单个符号 布尔常量 较为特

嵌入式 Linux C语言——C语言基础

嵌入式 Linux C语言--C语言基础 一.数据类型 1.基本数据类型 数据类型是创建变量的模型.变量名是连续存储空间的别名,程序中使用变量命名存储空间,通过变量可以使用存储空间.变量所占的内存大小取决于创建变量的数据类型. 2.有符号和无符号 有符号数中数据类型的最高位用于标识数据的符号,最高位为1表示为负数,最高位为0表示为正数. 计算机中有符号数通常使用补码表示,正数的补码为正数本身,负数的补码为负数的绝对值的各位取反后加1. 计算机中无符号数通常使用原码表示,无符号数默认为正数,没有符

C#语言基础

第一部分 了解C# C#是微软公司在2000年7月发布的一种全新且简单.安全.面向对象的程序设计语言,是专门为.NET的应用而开发的.体现了当今最新的程序设计技术的功能和精华..NET框架为C#提供了一个强大的.易用的.逻辑结构一致的设计环境.其特点: 语言简洁 保留了C++的强大功能: 快速应用开发功能: 语言的的自由性: 强大的Web服务器控件: 支持跨平台: 与XML相融合: 第二部分 C#语言基础: 一.C#项目的组成结构: 1.项目后缀 .config——配置文件(存放配置参数文件)

OC语言基础知识

OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能的类. 术语:OO面向对象.OOP面向对象编程 二.类 (一)关于类 类的设计只关注三个东西:类名.属性和方法 注意:一般名词都是类,拥有相同属性和行为的对象都可以抽象为一个类,类名是标识符的一种,需要符合规范,通常类名的第一个字母大写,且不能有下划线,如果有多个单词则使用驼峰标识.在对方法进行类的

【quick-cocos2d-x】Lua 语言基础

版权声明:本文为博主原创文章,转载请注明出处. 使用quick-x开发游戏有两年时间了,quick-x是cocos2d-Lua的一个豪华升级版的框架,使用Lua编程.相比于C++,lua的开发确实快速便捷了许多,下文只是lua这门语言的一个基础知识点,没有涵盖整个Lua的内容,但是作为对lua入门的初步了解还是可以的,由于内容精简了不少,所以语言上可能会有点跳跃,但是问题不大. 要了解一门语言,首先要了解的是语言的标识符.保留字.常量和变量,命名规范和注释以及数据类型等.然后是运算符.控制流语句

C# 语言基础(简单的输出 输入语句 和 加法运算符)

int a, b; Console.Title = "C# 语言基础-第一堂课";// 标题 Console.BackgroundColor = ConsoleColor.DarkRed;//设置控制台的背景颜色 Console.WriteLine("幼儿园大班第一节课"); Console.WriteLine("请输入a的值,按回车");//输出语句,自动换行 Console.Write("a="); //输出语句,自动不换