Walter She's Blog

flash,flex ,javascript原创教程,web设计,Flash RIA,其它与之相关的内容.

« Flash MX 2004 元素的文件大小使用Flash事件监听对象模型开发程序 »

变量作用域(scope chain)

Macromedia Flash Player 7使用了一个“范围链”(scope chain),范围链是一个对象清单。为了解决标志符(identifier)的问题,ActionScript在范围链里寻找最后一个元素,如果没有找到,它会继续寻找下一个元素。如果没有范围链,Flash就不能够正确地处理你的代码。

当你使用 with() 方法时,Flash临时在范围链的末尾增加一个对象,当动作执行完后对象被删除。当你使用function()语句定义一个函数时,当前的范围链被复制储存在方法对象里。当函数被执行时,范围链转到方法对象的范围链和一个新的局部变量增加到范围链的末尾。

my_mc.myMethod = function() {
// code
}

上面例子的这个方法的范围链并不包括my_mc 电影剪辑对象的范围链,然而它包含了和方法在同一个级别的其他代码的范围链。例如,如果这个代码被增加到主时间轴的某一帧,那么方法的范围链包含了主时间轴,如果你要引用主时间轴的事物,你需要在方法体内使用this关键字。

另外记得在你的代码里尽量使用相对路径而不是绝对路径。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表