由于flash的设计初衷,flash中使用完全的oop实在是有点吃力,即时代码规划得再好,程序员也免不了需要跟时间轴打交道。多几层mc包含关系之后,对象路径的查找便会变得混乱。使用类的静态方法可以方便地解决解决这个问题。
class Shell {
private static var singleton:Shell;
private static var timeline:MovieClip;
static function init(_timeline:MovieClip) {
if (singleton != undefined) {
return;
}
}
static function hideTimeline(){
timeline._visible=false;
}
}
用Shell.init()这个静态方法把主场景对象传给Shell类,创建Shell的一个单例:
Shell.init(this);
这样,便能把整个场景对象与一个专门提供静态类方法的对象捆绑起来了,在整个动画的任何地方都可以直接调用这个方法,无须知道这个方法是在哪个mc里面实现的,避免了繁琐的分布零散的代码管理。如果需要改某些功能的具体实现,只要打开Shell.as进行管理就可以了。
Shell.hideTimeline();
这仅是一个简单的例子,使用者当然可以根据自己的需求组织和编排自己需要的类。
以上所述只是提供一种解决问题的思路,未必适合所有需求,也未必是最好的方法。
class Shell {
private static var singleton:Shell;
private static var timeline:MovieClip;
static function init(_timeline:MovieClip) {
if (singleton != undefined) {
return;
}
}
static function hideTimeline(){
timeline._visible=false;
}
}用Shell.init()这个静态方法把主场景对象传给Shell类,创建Shell的一个单例:
Shell.init(this);这样,便能把整个场景对象与一个专门提供静态类方法的对象捆绑起来了,在整个动画的任何地方都可以直接调用这个方法,无须知道这个方法是在哪个mc里面实现的,避免了繁琐的分布零散的代码管理。如果需要改某些功能的具体实现,只要打开Shell.as进行管理就可以了。
Shell.hideTimeline();这仅是一个简单的例子,使用者当然可以根据自己的需求组织和编排自己需要的类。
以上所述只是提供一种解决问题的思路,未必适合所有需求,也未必是最好的方法。



浙公网安备 33010602011771号