【发布时间】:2010-10-02 23:36:21
【问题描述】:
由于 actionscript 3.0 基于 ECMAscript,它与 javascript 有一些相似之处。我一直在玩的一个相似之处是从函数创建对象。
在javascript中创建一个对象,
var student = new Student( 33 );
document.write( student.age );
function Student( age ){
this.age = age;
}
在 actionscript 3.0 中,对象通常是通过类创建的,但也可以像在 javascript 中一样,通过构造函数创建对象。
package{
import flash.display.Sprite;
public class Main extends Sprite{
public function Main(){
var student = new Student( 33 );
trace( student.age );
}
}
}
function Student( age ) {
this.age = age;
}
但是上面的代码出现编译错误
加载配置文件 C:\Program Files\Adobe\Flex Builder 3\sdks\3.1.0\frameworks\flex-config.xml C:\Documents and Settings\mallen\Desktop\as3\Main.as(5): col: 23 错误:参数数量不正确。预期 0 var 学生 = 新学生(33); ^我想知道这是为什么?更奇怪的是,下面的代码确实有效
package{
import flash.display.Sprite;
public class Main extends Sprite{
public function Main(){
Student( 33 );
var student = new Student();
trace(student.age);
/* When I add the two lines below, the code wont compile? */
//var student2 = new Student( 33 );
//trace(student2.age);
}
}
}
function Student( age ){
this.age = age;
trace(age);
}
这段代码的输出是
33 不明确的 不明确的【问题讨论】:
标签: javascript actionscript-3 object