我正在制作一个Flash游戏,我想拥有一大堆不同的房间,我可以用代码制作和删除。通常我会使用类似的东西:
var room:Sprite = new room1();
game.main.addChild(room);
...但是我必须将每个房间导出为动作脚本。有没有办法让它们成为符号?如果不出意外,我可以用一个符号将所有房间叠加在一起,并设置除了一个之外的所有房间,但我更喜欢用getDefinitionByName()
这样做。
答案 0 :(得分:1)
一个房间与另一个房间的区别是什么?他们有什么不同?理想情况下,您可以将这些“差异”分组到类的层次结构中。举个简单的例子,如果有些房间是蓝色的,有些房间是红色的,你可以创建以下类:
Room
ColoredRoom
Room是ColoredRoom的父级。然后,你给彩色房间一个属性,如:
var color:Color;
并设置该属性以创建三个不同的房间:
var redRoom:ColoredRoom = new ColoredRoom();
var greenRoom:ColoredRoom = new ColoredRoom();
var blueRoom:ColoredRoom = new ColoredRoom();
redRoom.color = new Color(255,0,0);
greenRoom.color = new Color(0,255,0);
blueRoom.color = new Color(0,0,255);
一旦你“分组”你的课程,你不应该出口超过几个“类型”的房间。每个属性都有自己的一组属性,使它与另一个属性不同(可能是不同的源图像文件或动画片段)。
基本点是,在对象方面解决问题应该会让事情变得更容易。弄清楚:
如果你不得不将你的房间分成两个或三个不同的类别,它们会是什么?
从那里开始。我希望在某种程度上有所帮助,
- gMale
答案 1 :(得分:0)
我认为你必须为AS导出每个,但是我不确定...但是,如果你确实将它们全部放在一个符号中,那么将它作为一个MovieClip就会容易得多,并将每个放在不同的框架上;然后,您可以通过转到相应的框架在房间之间切换。