AS3 - 如何更改所有相同Movieclips运行时的内容?

时间:2014-02-14 22:24:09

标签: actionscript-3 flash swap movieclip

所以,基本上,我想做的是替换已经在Player MovieClip中的剑MovieClip的内容,并且是动画的,因此它在Player MovieClip中有多个剑MovieClip实例。

我可以在动作脚本中以某种方式编辑剑MovieClip的内容,以便所有剑MovieClip更新并更改吗?

我想要实现的只是改变角色动画的武器,不需要我等待每一帧,并删除前一个武器的theChild()和addChild()武器的每个实例中的新武器。

2 个答案:

答案 0 :(得分:0)

我不确定我能得到它但也许你需要一个武器事件类 包WeaponEvents {     import flash.events.Event;

[Event(name="sword1", type="event.sword1")]
[Event(name="sword2", type="event.sword2")] 


public class SwordEvent extends Event
{

    public static const SWORD_1 : String = "sword1";
    public static const SWORD_2 : String = "sword2";

    public var arg:*;

    public function SwordEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, ... a:*) {
        super(type, bubbles, cancelable);
        arg = a;

    }

//覆盖克隆         覆盖公共函数clone():Event {             返回new LoadEvent(type,bubbles,cancelable,arg);         }     }  }

只需在用户查看武器时添加事件即可。

答案 1 :(得分:0)

我和你在一条类似的船上。除了我有30-50个身体部位要覆盖,所以我真的不能去蛮力的方式。

如果它只是你要替换的剑,我假设在动画中它在它自己的层上?然后我找到的“廉价方式”是:

  1. 将该图层(并且只有该图层)中的所有帧复制粘贴到另一个动画片段中,即Sword1Swing。
  2. 从MC动画中删除该图层(仅限该图层)。
  3. 在另一个电影图层中,将Sword1Swing放在第1帧,在第2帧放置Sword2Swing等。
  4. MC.gotoAndStop("SwordSwing"); SwordMC.gotoAndStop("Sword1Swing");
  5. 只要你保持SwordMC的.x和.y与MC同步,动画应该总是对齐。
  6. 手经常越过剑的顶部,在这种情况下......你也可以复制手。或整个手臂。或者您可以在库中自定义您的剑符号的基本图形,以与手指之间的空白区域完全匹配(复制和粘贴手形图形以移除不需要的部分,然后删除手形图形,然后您将拥有完美的形状)
  7. 这是我所知道的贫民区方式,我非常需要实际有效的交换。但这可以帮助您快速完成项目。