前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ActionScript语言基础 原

ActionScript语言基础 原

作者头像
LeoXu
发布2018-08-15 14:46:56
7930
发布2018-08-15 14:46:56
举报
文章被收录于专栏:LeoXu的博客LeoXu的博客

注释

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

行内注释

代码语言:javascript
复制
//这里是行内注释
var i:int;
var x:int; //这是也是行内注释

多行注释

代码语言:javascript
复制
/*
  这是
  一段
  多行注释
*/

变量

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

变量名命名规则:

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

变量数据类型的规则:

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

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

类型检查

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

顶级类

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

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

  • 使用顶层类不需要事先使用import语句导入包,即可直接创建类的实例:
代码语言:javascript
复制
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循环:

代码语言:javascript
复制
for(var i = 0; i < 10; i++ ){
	trace(i);
}
代码语言:javascript
复制
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]);
}
代码语言:javascript
复制
var myObj:Object = {firstName:"leo",lastName:"xu"};
for(var i:String in myObj) {
trace("Property:" + i + "=" + myObj[i]);
}
代码语言:javascript
复制
//如果只想得到每项的值,使用for each ... in 更方便
for each(var i:String in myObj) {
trace(i);
}

while和do..while循环:

...

if, else , else if判断:

...

switch循环:

... 

数组

ActionScript支持三种类型的数组:

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

索引数组:

代码语言:javascript
复制
var $array1:Array = new Array();
var $array2:Array = new Array(3);

操作

代码语言:javascript
复制
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"];//数组的简便初始化
代码语言:javascript
复制
//下面是数组的遍历
for(var i:int = 0; i<array.length; i++ {//使用length属性获取数组的大小
trace(array[i]);//把值输出到日志
}

关联数组:

可以存储键值对的集合.

代码语言:javascript
复制
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]);
}
代码语言:javascript
复制
//如果只想得到每项的值,使用for each ... in 循环
for each (var i:String in $map) {
trace("value:" + i);
}

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

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

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

特殊语法

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

函数和类

函数:

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

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

创建函数的要素:

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

作用域:

public , private, protected

CDDATA:

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

导入包:

代码语言:javascript
复制
import mx.collections.ArrayCollection;//导入ArrayCollection类
import mx.collections.*;//导入所有的类

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

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

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

数据绑定

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

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

  • 不使用绑定的:
代码语言:javascript
复制
<?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>
  • 添加绑定:
代码语言:javascript
复制
<?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>
  • 绑定标签:
代码语言:javascript
复制
<?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中的东西并不都是可以被用来绑定的,可不可以被绑定,必需 显示声明

代码语言:javascript
复制
<?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>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014/08/23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 注释
    • 行内注释
    • 变量
      • 变量名命名规则:
        • 变量数据类型的规则:
        • 类型检查
        • 顶级类
        • 特殊数据类型
        • 循环
          • for循环:
            • while和do..while循环:
              • if, else , else if判断:
                • switch循环:
                • 数组
                  • 索引数组:
                    • 关联数组:
                    • 特殊语法
                    • 函数和类
                      • 函数:
                          • 创建函数的要素:
                            • 作用域:
                              • CDDATA:
                                • 导入包:
                                  • 将ActionScript代码放到独立于MXML文件的文件中:
                                  • 数据绑定
                                    • 使ActionSrcript变量可被绑定:
                                    领券
                                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档