【问题标题】:Add symbol to stage without exporting for actionscript?将符号添加到舞台而不导出动作脚本?
【发布时间】:2011-03-14 07:17:25
【问题描述】:

我正在用 Flash 制作游戏,我想要拥有一大堆不同的房间,我可以用代码制作和删除它们。通常我会使用类似的东西:

var room:Sprite = new room1();
game.main.addChild(room);

...但我必须为动作脚本导出每个房间。有没有办法让它们成为符号?如果不出意外,我可以将所有房间叠加在一个符号中,并将除一个以外的所有房间设置为不可见,但我更喜欢使用 getDefinitionByName() 这样做。

【问题讨论】:

    标签: flash actionscript-3


    【解决方案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);
    

    一旦您“分组”了您的课程,您不必导出超过几个“类型”的房间。每个都有自己的一组属性,使其与另一个不同(可能是不同的源图像文件或影片剪辑)。

    基本的一点是,从对象的角度来解决你的问题应该会让事情变得更容易。弄清楚:

    如果您必须将您的房间分为 2 或 3 个不同的类别,它们会是什么?

    然后从那里出发。我希望在某种程度上有所帮助,

    --gMale

    【讨论】:

      【解决方案2】:

      我认为您确实必须为 AS 导出每个,但我不确定...但是,如果您确实将它们全部放在一个符号中,则将其制作为 MovieClip 会容易得多,并将每个放在不同的框架上;然后,您可以通过转到相应的框架在房间之间切换。

      【讨论】:

      • 好吧,我不确定我是否会按照你的想法去做,但我想你回答了我的问题,所以我会接受。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-22
      • 2013-03-10
      • 1970-01-01
      • 1970-01-01
      • 2014-08-29
      • 2013-03-21
      • 1970-01-01
      相关资源
      最近更新 更多