2011-10-14 17 views
0

私は子供のMCで親からいくつかの変数にアクセスしようとしています。は、親から子に渡す変数を発行します。 AS3

親コード:

var data_history:String;  
function finish_checkUp(event:Event):void{   
     var checkUp_stat:String; 
     checkUp_stat = data.check_UP_STAT; 
     if (checkUp_stat == "PASSED"){ 
      data_history = "FALSE"; 
      gotoAndPlay ("domain_check"); 
     } 
     else if (checkUp_stat == "FAILED"){ 
      data_history = "TRUE"; 
      gotoAndPlay ("error_data_conflict"); 
     } 
     else if (checkUp_stat == "FAILED_UN"){ 
      data_history = "TRUE"; 
      gotoAndPlay (""); 
     } 
} 

CHILD MC:

contt_btn.addEventListener(MouseEvent.MOUSE_DOWN, mouseClick); 
    contt_btn.addEventListener(MouseEvent.ROLL_OVER,contt_btnOver); 
    contt_btn.addEventListener(MouseEvent.ROLL_OUT,contt_btnOut); 
    function contt_btnOver(event:MouseEvent):void{ 
     contt_btn.gotoAndPlay("over"); 
    } 
    function contt_btnOut(event:MouseEvent):void{ 
     contt_btn.gotoAndPlay("out"); 
    } 
    function mouseClick(event:MouseEvent):void 
    { 
     trace (MovieClip(this.parent).data_history); 
     if (data_history == "TRUE"){ 
    MovieClip(parent).gotoAndPlay("begin_erasing"); 
     } 
     else if (data_history == "FALSE"){ 
      gotoAndPlay("");} 
    } 

今、あなたが見ることができるように、私は、しかし、運と、trace方法を試してみました。 Flashはtraceメソッドに関するエラーを報告しませんが、未定義の2つの変数(data_history)を報告します。 Iveは、スクリプトの上部にあるすべての関数の上にトレースメソッドを使用しようとしましたが、それでも同じエラーが発生しました。

答えて

0

でトレースでは、あなたがthis.parentを通じてdata_historyプロパティを参照しています。同様に親を通じてプロパティを参照するために...他にあればそれはあなたの価値をトレースと仮定すると、あなたはあなたを調整する必要があります:あなたは、エラーがスローさを持っているトレースは、そのプロパティが、親に存在しなかった場合

function mouseClick(event:MouseEvent):void 
{ 
    trace (MovieClip(this.parent).data_history); 
    if (MovieClip(this.parent).data_history == "TRUE"){ 
MovieClip(parent).gotoAndPlay("begin_erasing"); 
    } 
    else if (MovieClip(this.parent).data_history == "FALSE"){ 
     gotoAndPlay("");} 
} 

0

このようにして、子ムービーはその親を検査すべきではありません。子供の文書クラスに

はこれを試してみてください

public var data_history:String; 
function mouseClick(event:MouseEvent):void{ 
      if (data_history == "TRUE"){ 
        MovieClip(parent).gotoAndPlay("begin_erasing"); 
      } 
      else if (data_history == "FALSE"){ 
        gotoAndPlay("");} 
      } 
} 

function finish_checkUp(event:Event):void{ 
      var checkUp_stat:String; 
      checkUp_stat = data.check_UP_STAT; 
      if (checkUp_stat == "PASSED"){ 
       data_history = "FALSE"; 
       if (childMC as ChildDocumentClass) { 
        (childMC as ChildDocumentClass).data_history = data_history; 
       } 
       gotoAndPlay ("domain_check"); 
      } 
      else if (checkUp_stat == "FAILED"){ 
       data_history = "TRUE"; 
       if (childMC as ChildDocumentClass) { 
        (childMC as ChildDocumentClass).data_history = data_history; 
       } 
       gotoAndPlay ("error_data_conflict"); 
      } 
      else if (checkUp_stat == "FAILED_UN"){ 
       data_history = "TRUE"; 
       if (childMC as ChildDocumentClass) { 
        (childMC as ChildDocumentClass).data_history = data_history; 
       } 
       gotoAndPlay (""); 
      } 
    } 
関連する問題