Actionscript 3 flashas3中的Pan类
我有一个movieclip,我将为它添加一个pan功能。我想添加pan,因为它是movieclip可以引用的自己的类 当我创建pan类时,我将movieclip发送给它,这样我就可以随时获得它的位置属性 在泛课堂上进入舞台的最佳方式是什么?我需要能够得到舞台鼠标、鼠标、舞台宽度和舞台高度 现在,我让pan类扩展了一个sprite对象,并将其添加为我想要平移的movieclip的子对象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
还是将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;)是个好主意我将对答案进行编辑以包含该行。