学习 Adobe Flash 中的 ActionScript 2.0 |
|
|
|
| 语法和语言基础知识 > 关于语言标点符号 > 大括号 | |||
使用大括号 ({}) 可以将 ActionScript 事件、类定义和函数组合成块。可以将左大括号与声明放在同一行中。
|
注意 |
也可以将左大括号放在声明下边的一行。编码约定建议将左大括号放在同一行中以保持一致性。有关大括号和编码约定的信息,请参阅"ActionScript 2.0 的最佳做法和编码约定"。 |
在构成控制结构的每个语句前后添加大括号(例如 if..else 或 for),即使该控制结构只包含一个语句。此良好做法可帮助您避免因忘记给代码添加大括号而导致 ActionScript 出现错误。下例显示使用拙劣的形式编写的代码:
var numUsers:Number;
if (numUsers == 0)
trace("no users found.");
尽管此代码有效,但仍然会被视为形式拙劣,因为语句前后不存在大括号。
|
提示 |
单击"自动套用格式"按钮,大括号将添加到该语句中。 |
在此情况下,如果在 trace 语句后添加另一个语句,则无论 numUsers 变量是否等于 0,另一个语句都会执行,这会导致意想不到的结果。因此,请添加大括号,使代码看起来如下例所示:
var numUsers:Number;
if (numUsers == 0) {
trace("no users found");
}
在下例中,将创建一个事件侦听器对象和一个 MovieClipLoader 实例。
var imgUrl:String = "http://www.helpexamples.com/flash/images/image1.jpg";
this.createEmptyMovieClip("img_mc", 100);
var mclListener:Object = new Object();
mclListener.onLoadStart = function() {
trace("starting");
};
mclListener.onLoadInit = function(target_mc:MovieClip):Void {
trace("success");
};
mclListener.onLoadError = function(target_mc:MovieClip):Void {
trace("failure");
};
var myClipl:MovieClipLoader = new MovieClipLoader();
myClipl.addListener(mclListener);
myClipl.loadClip(imgUrl, img_mc);
下一个示例显示了可用于创建 Student 对象的简单的类文件。可以在"类"中学习关于类文件的更多知识。
在 ActionScript 文件中使用大括号:
// Student.as
class Student {
private var _id:String;
private var _firstName:String;
private var _middleName:String;
private var _lastName:String;
public function Student(id:String, firstName:String, middleName:String, lastName:String) {
this._id = id;
this._firstName = firstName;
this._middleName = middleName;
this._lastName = lastName;
}
public function get firstName():String {
return this._firstName;
}
public function set firstName(value:String):Void {
this._firstName = value;
}
// ...
}
// student_test.fla
import Student;
var firstStudent:Student = new Student("cst94121", "John", "H.", "Doe");
trace(firstStudent.firstName); // John
firstStudent.firstName = "Craig";
trace(firstStudent.firstName); // Craig
下一个示例演示了使用函数时如何使用大括号。
将大括号用于函数:
function checkForm():Boolean {
status_lbl.text = "";
if (firstName_ti.text.length == 0) {
status_lbl.text = "Please enter a first name.";
return false;
}
return true;
}
function clickListener(evt_obj:Object):Void {
var success:Boolean = checkForm();
};
submit_button.addEventListener("click", clickListener);
在 SWF 文件中,如果在 firstName_ti TextInput 组件中没有加入文本时就单击舞台上的 Button 实例,就会显示一条错误消息。该错误消息出现在 Label 组件中,告知用户他们需要输入名字。
下一个示例使用大括号显示了如何在对象内创建和定义属性。在此例中,属性在对象中是通过在大括号 ({}) 标点符号中指定变量名称来定义的:
var myObject:Object = {id:"cst94121", firstName:"John", middleName:"H.", lastName:"Doe"};
var i:String;
for (i in myObject) {
trace(i + ": " + myObject[i]);
}
/*
ID:cst94121
名字:John
中间名:H.
姓氏:Doe
*/
还可以使用空的大括号对作为 new Object() 函数的语法快捷方式。例如,以下代码将创建一个空的 Object 实例:
var myObject:Object = {};
|
提示 |
记住一定让每个左大括号都有和它配对的右大括号。 |
|
|
|
|