2014-02-14 37 views
0

因此,基本上,我想要做的是替換Player MovieClip中已存在的動畫片段剪輯的內容,並且它是動畫的,因此它具有穿過播放器動畫剪輯的劍形MovieClip的多個實例。AS3 - 如何更改所有相同Movieclips運行時的內容?

我可以在ActionScript中以某種方式編輯劍動畫片段的內容,以便所有劍動畫片段更新並更改?

我想要實現的只是改變角色動畫的武器,不需要我等待每一幀,removeChild()前一個武器和addChild()武器的每一個實例的新的武器。

+0

你可以請示出一些代碼嗎?我的意思是你到目前爲止所嘗試過的? –

+0

我現在擁有的是 'var weaponName:String =「swordBasic1」; var weaponNameClass:Class = getDefinitionByName(weaponName)as Class; VAR WeaponName =新weaponNameClass;' '如果(PlayerCharMc.currentFrame = 5!){ \t \t \t PlayerCharMc.WeaponMc.addChild(WeaponName); \t \t} else if(PlayerCharMc。currentFrame == 5){ \t \t \t PlayerCharMc.LPunch.WeaponMc.addChild(WeaponName); \t \t}' 這比上年影片剪輯基本上粘貼新的一個,我還沒有添加removeChilds,但我明白,我不會和一個靈活的系統跑遠。我想改變的是動態庫中的動畫片段。 – lagxbag

回答

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; 

    } 

//覆蓋克隆 覆蓋公共函數克隆():事件{ 返回新比如LoadEvent(類型,氣泡,或取消,ARG); } } }

只需將事件添加到用戶發現武器時。

+0

PS只要您強制鍵入事件並在不再需要時刪除它們,您就不必擔心泛型事件的性能問題。 – Papergrave

+0

感謝您的回答。儘管如此,我還沒有得到它的工作,但那是因爲我忽略了與類和包相關的任何事情。我將所有內容都放在一個文件中,並且我認爲跨多個文件的代碼適用於更大的項目。這真的很愚蠢,因爲我不知道任何關於包,類和導入這些類的內容嗎? – lagxbag

0

我和你在一條類似的船上。除了我有30-50個身體部位掩飾之外,所以我真的不能採用暴力的方式。

如果它只是你想替換的劍,我假設在動畫中它是在它自己的層上?然後我發現一個「便宜的方式」是:

  1. 複製粘貼該層(和只有該層)中的所有幀到另一個動畫片段即Sword1Swing中。
  2. 從您的MC動畫中刪除該圖層(以及該圖層)。
  3. 在又一電影層,把Sword1Swing上框架1,Sword2Swing上框架2等
  4. MC.gotoAndStop("SwordSwing"); SwordMC.gotoAndStop("Sword1Swing");
  5. 只要你保持.X和.Y的SwordMC與MC同步,動畫應該總是排隊。
  6. 手經常會越過劍的頂端,在這種情況下...您也可以複製手。或整個手臂。或者,您可以在庫中定製劍形符號的基本圖形,以便與手指之間的空白空間完全匹配(複製並粘貼手形圖形以移除不需要的部分,然後刪除手形圖形,然後您將擁有完美的形狀) 。

這是我知道的貧民窟方式,我非常需要一個實際的高效交換。但這可能會幫助您快速完成項目。

相關問題