2012-11-28 75 views
3

我正在使用flex 3.我在mx:Canvas中使用mx:Compnonet,我可以調用在內部組件上的canvas中聲明的函數嗎?調用內部組件的函數

我somethink這樣的:

<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" 
     xmlns:flexlib="http://code.google.com/p/flexlib/" xmlns:local="*" 
     horizontalScrollPolicy="off" verticalScrollPolicy="off" 
     creationPolicy="all"> 

    <mx:Script> 
     <![CDATA[ 

      public function someFunction():Boolean { 
       //do something 
       return someBoolean; 
      } 

     ]]> 
    </mx:Script> 

    <mx:Component> 
     <mx:HBox width="100%" height="100%" horizontalAlign="left" verticalAlign="middle" paddingLeft="4" paddingRight="8" horizontalGap="4"> 
      <mx:Script> 
        <![CDATA[ 
         private function anotherFunction():Boolean{ 
          //do something else 
          //here I need call someFunction() 
         } 
        ]]> 
      </mx:Script> 

      <mx:Image source="@Embed('/assets/icons/compress_folder_down16.png')" 
        buttonMode="true" click="this.setFocus(); this.dispatchEvent(new Event('multipleDownload',true));" 
        visible="{this.anotherFunction()}" includeInLayout="{this.anotherFunction()}"/> 

     </mx:HBox> 
    </mx:Component> 

我想呼籲的someMethod在anotherMethod。我該怎麼做?

回答

2

使用outerdocument.someFunction();

+0

你可以稱之爲添加outerDocument雖然這總是感覺就像一個黑客,這是因爲如果組件現在知道其父母是誰,組件的全部意義在於,你可以四處移動它,並在任何地方把它。 – MonkeyMagiic