// 视频语音聊天系统
// FCAVPresence组件
// Copyright ◎2002 Macromedia, Inc. All rights reserved.
// 完 善: Liu21st, Liu21st@126.com
//--------------------------------------------------------- 在独立的功能模块前面加上类似的标注:
// 参数初始化
file://---------------------------------------------------------
4. 初始化应用程序 记得一定要初始化你的应用程序,init函数应该是你的应用程序类的第一个函数,如果使用面向对象的编程方式则应该在构造函数中进线初始化工作。该函数只是对应用程序中的变量和对象初始化,其它的调用可以通过事件驱动。
下面的例子可以说明如何进线初始化
function FCAVPresenceClass() {
this.init();
}
FCAVPresenceClass.prototype.init = function() {
this.name = (this._name == null ? "_DEFAULT_" : this._name);
this.prefix = "FCAVPresence." + this.name + ".";
};
5.使用局部变量 所有的局部变量使用关键字var来申明,这样可以避免被全局变量访问,更重要的是,可以保证变量不被覆盖和混淆程序逻辑。例如,下面的代码没有使用var来申明,覆盖了其它变量。
counter = 7;
function loopTest()
{
trace(counter);
for(counter = 0; counter < 5; counter++)
{
trace(counter);
}
}
trace(counter);
loopTest();
trace(counter);
输出结果为:
7
7
0
1
2
3
4
5
6. 创建对象时使用原型添加方法和属性 当我们创建一个对象的时候,应当使用原型方式来添加对象的方法或属性,使得该方法或属性能够被所有该对象或子对象的实体所访问。这种能够确保内存中每个函数只有一份拷贝。作为一般的规则,不要在构造函数中定义方法。下面是一个正确的例子:
// Best practice for creating an object
MyObject = function()
{ }
MyObject.prototype.name = "";
MyObject.prototype.setName = function(name)
{
this.name = name;
}
MyObject.prototype.getName = function()
{
return this.name;
}
下面这段代码是不可取的:
// Less desirable practice for creating an object
MyObject = function()
{
this.name = "";
this.setName = function(name)
{
this.name = name;
}
this.getName = function()
{
return this.name;
}
}
使用上面的方式在每个对象的实体被创建的时候都会实体重新复制每一个属性和方法,会加重系统的内存开销。
7. 规范命名方式获取代码提示功能 不再是需要定义类似 _mc 之类的命名才会显示代码提示
但是需要使用as2.0的规范来书写代码,如:
1 :
var members:Array = new Array();
然后我们在输入members. ,Flash 就会显示可用于 Array 对象的方法和属性的列表
(关键是 members:Array 起的作用,其实我们在变量名称后面打:的时候自动会给出所有支持的对象的列表)
但并不是要我们在使用面向对象编程的时候不需要注意命名规范了