我正在为我的Flash应用程序(AS3 + Flash CS5)开发图层系统功能。目标是创建像Photoshop这样的系统,其中元素属于图层。这些不同的层可以隐藏或锁定(以避免元素移动)。
我想创建一个MovieClip(基本类称为“Layer”)并将其与其他MovieClip相关联。
这样的事情:
这应该由更多的MovieClip组成:eye(控制图层可见性),名称(允许动态名称更改)和锁定(锁定图层内的元素)。
如何在基本类'Layer'中引用这些不同的MovieClip?或者我如何考虑我的设计允许这种行为?
有没有不同或更好的方法呢?
谢谢!
答案 0 :(得分:1)
现在我能想到的唯一最佳方法是拥有两个课程。 具有所有“图纸”的“图层”类。这可能只是一个MovieClip(或一个扩展MovieClip的类)。 接下来,您将拥有“LayerInfo”,它具有您在图像中显示的视觉方面。这个类还扩展了MovieClip,但有一个变量,我们称之为visualLayer,它是对舞台上Layer的引用。
所以基本上,当您按下“新建图层”按钮时,您会创建两个对象:绘图图层和图层信息对象。接下来,如果可以简单地使用公共方法hideLayer来打开和打开图层。它将是这样的:
public function togleLayerVisibility():void{
this.visualLayer.visible = !this.visualLayer.visible;
//optional, you can make the eye different as well
//this.eye.togleVisual();
}
以同样的方式,您可以在VisualLayer上执行其他操作。