2009-11-21 68 views
2

我有一個像下面錯誤:id屬性是不允許在組件的根標籤

<mx:Button id="TestingID" width="100%" height="20">     
    <mx:Script> 
     <![CDATA[ 
      import flexlib.containers.WindowShade; 
     ]]> 
    </mx:Script--> 
</mx:Button> 

我收到錯誤的一個代碼「id屬性不允許在組件的根標籤「

我必須給一個ID來指向它的按鈕。我該怎麼做..我該如何解決這個問題?

問候 Zeeshan

回答

3

如果您從本身內部調用組件,則使用'this'關鍵字。

<mx:Button height="20">     
    <mx:Script> 
     <![CDATA[ 
      import flexlib.containers.WindowShade; 
      this.percentWidth = 100; 
     ]]> 
    </mx:Script--> 
</mx:Button> 

如果你想從你的應用程序中引用自定義組件,那麼你這樣做。

<application xmlns:local = "[Directory containing custom component]"> 
    <local:MyCustomButton id="myButtonInstantiation" /> 
</application> 

有意義嗎?

0

如果你在一個文件中定義這個作爲Button一個子類,那麼你可以不設置id這裏。把id放在你使用這個新組件的地方。例如,如果這個新組件將是一個AwesomeButton,你可以使用它像這樣:

<mycompnamespace:AwesomeButton id="testingId" /> 
+0

我沒有得到它......你會plz解釋一下更多 – 2009-11-21 02:32:47

+0

你應該考慮編寫Flex 3的書,以便熟悉Flex的基礎知識開發(http://www.amazon.com/Programming-Flex-Comprehensive-Creating-Applications/dp/0596516215) – rfunduk 2009-11-21 05:33:58

1

MXML文件本質上是一個類。所以如果你想從它內部引用該類的實例,那麼你只需使用「this」。

0

讓我們看看下面的代碼 -

<s:ComboBox id="myCombo" dataProvider="{al}"> 
     <s:itemRenderer> 
      <fx:Component> 
       <s:CheckBox **id="NOWAY**" click="clickHandler(event)"/> 
      </fx:Component> 
     </s:itemRenderer> 
</s:ComboBox> 

ID沒有在這些類型的場景允許,您使用的「這個」關鍵字,因爲在這種情況下複選框內組件的根標籤。

1

這也可以,如果你嵌套內另一個

組件,所使用的<fx:Component>標籤你是在MXML內聯文檔

<mx:itemEditor> 
    <fx:Component> 
      <mx:TextInput id="precioVenta"/> 
    </fx:Component> 
</mx:itemEditor> 

所有你需要的根部發生一旦做的是移動id屬性爲標籤這樣

<mx:itemEditor> 
    <fx:Component id="precioVenta"> 
     <mx:TextInput /> 
    </fx:Component> 
</mx:itemEditor> 

這適用於任何類型的標籤或嵌套引起的Flexç ompiler爲組件的inlinde聲明創建一個新的上下文