我的AS3 Flash应用程序中的图层系统功能

时间:2011-09-16 11:48:16

标签: actionscript-3 flash-cs5 layer

我正在为我的Flash应用程序(AS3 + Flash CS5)开发图层系统功能。目标是创建像Photoshop这样的系统,其中元素属于图层。这些不同的层可以隐藏或锁定(以避免元素移动)。

我想创建一个MovieClip(基本类称为“Layer”)并将其与其他MovieClip相关联。

这样的事情:

example

这应该由更多的MovieClip组成:eye(控制图层可见性),名称(允许动态名称更改)和锁定(锁定图层内的元素)。

如何在基本类'Layer'中引用这些不同的MovieClip?或者我如何考虑我的设计允许这种行为?

有没有不同或更好的方法呢?

谢谢!

1 个答案:

答案 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上执行其他操作。