Actionscript 3 flashas3中的Pan类

Actionscript 3 flashas3中的Pan类,actionscript-3,flash,pan,Actionscript 3,Flash,Pan,我有一个movieclip,我将为它添加一个pan功能。我想添加pan,因为它是movieclip可以引用的自己的类 当我创建pan类时,我将movieclip发送给它,这样我就可以随时获得它的位置属性 在泛课堂上进入舞台的最佳方式是什么?我需要能够得到舞台鼠标、鼠标、舞台宽度和舞台高度 现在,我让pan类扩展了一个sprite对象,并将其添加为我想要平移的movieclip的子对象 还是将stage本身也发送到pan类中更好?或者有更好的方法吗?创建一个单例类,管理对stage的更改,名为St

我有一个movieclip,我将为它添加一个pan功能。我想添加pan,因为它是movieclip可以引用的自己的类

当我创建pan类时,我将movieclip发送给它,这样我就可以随时获得它的位置属性

在泛课堂上进入舞台的最佳方式是什么?我需要能够得到舞台鼠标、鼠标、舞台宽度和舞台高度

现在,我让pan类扩展了一个sprite对象,并将其添加为我想要平移的movieclip的子对象


还是将stage本身也发送到pan类中更好?或者有更好的方法吗?

创建一个单例类,管理对stage的更改,名为
StageManager
,并通过向stage传递一个引用来初始化它:

//StageManager.as

import flash.display.Stage;

public class StageManager()
{
    //publicly accessible singleton instance
    public static var instance:StageManager = new StageManager();

    private var m_stage:Stage;

    //I'm using a custom getter and setter in just in case you need perform some other 
    //initialization when the stage gets set...
    public function set stage(stg:Stage):void
    {
        m_stage = stg;
    }

    public function get stage():Stage
    {
        return m_stage;
    }

}
然后在其他地方,如主控制器类:

StageManager.instance.stage = this.stage; 
现在,您可以通过
StageManager
全局访问stage及其属性:

var stageW:int = StageManager.instance.stage.stageWidth; 
这样,不仅仅是你的泛班,其他任何事情都可以随时进入全球舞台。很酷吧


至于如何设计您的Pan类,我同意@u asMan-extend
MovieClip
。除非,也就是说,一个
Pan
实例将控制多个
MovieClip
实例,否则将其作为自己的东西可能更有意义(如上所述).

正确的方法是让pan类扩展MovieClip,然后将其作为pan类的实例,而不是使您的MovieClip成为MovieClip。然后MovieClip类的所有属性都将被继承。我将有一个zoom类和其他可能使用正在平移的MovieClip的类,所以我认为我不能让它扩展所有这些不同的元素。到目前为止,Pan类将只控制另一个movieclip,但我的程序的未来添加可能也会使它对其他剪辑起作用,这就是为什么我想将它分开。我试图实现代码,但我遇到了错误。它说在stageManager类中找不到stage或stage不是编译时常量。我想它需要从主课转到主课,我让它开始工作了。我需要添加“导入flash.display.Stage;”去舞台管理员班。很高兴你弄明白了!是的,导入
Stage
class;)是个好主意我将对答案进行编辑以包含该行。