2014-02-20 85 views
0

我在Flex中有一個手風琴組件,它有兩個孩子, 在我的頁面加載時,我想將第一個孩子中的文本字段的文本值賦給一個文本字段第二個孩子通過使用actionscript,但它的faildFlex 4.x手風琴項目在actionscript中未知的兒童

nb:當我點擊secode孩子,並且我返回從第一個孩子傳遞的textvalue,行動成功!

   <mx:HBox width="100%" height="310" horizontalAlign="center"> 
         <mx:Accordion id="accordion1" width="100%" height="310" historyManagementEnabled="true"> 
      <!-- child 1--><mx:VBox id="theme_resultat" width="95%" height="95%" 
            label="Résultat" horizontalAlign="center" 
            verticalAlign="middle"> 
           <s:HGroup left="0" right="0" bottom="0" width="98%" 
              horizontalAlign="right"> 
            <s:TextInput id="doc"/> 
            <mx:Button id="btnAdd" label="Add" 
               click="add_text(event)" 
               icon="@Embed('assets/images/add.png')" 
               paddingLeft="3" paddingRight="3"/> 
           </s:HGroup> 

          </mx:VBox> 
      <!-- child 2--><mx:VBox id="theme_detail" width="95%" height="95%" label="Détail" 
            verticalAlign="middle"> 
           <mx:VBox width="100%" height="150" horizontalAlign="center"> 
            <s:HGroup> 
             <mx:FormItem label="Titre:" paddingLeft="5"> 
              <mx:TextInput id="doc_titre"/> 
             </mx:FormItem> 
            </s:HGroup>        
           </mx:VBox> 
          </mx:VBox> 
         </mx:Accordion> 
      </mx:HBox> 
 protected function add_text(event:MouseEvent):void 
     { 
       accordion1.selectedIndex=1; 
       doc_titre.text = doc.text; 
      } 
     } 

當我點擊添加我移動到了第二個孩子,但(MX:的TextInput ID = 「doc_titre」)不具備的(一個或多個值:的TextInput ID =「DOC 「/)

第二次我回到孩子1,我點擊添加,然後我移動到第二個孩子,我在(mx:TextInput)中找到(s:TextInput id =」doc「)的值id =「doc_titre」)

+0

您是否收到任何錯誤/異常/警告? – simion314

+0

不,我錯過了creationPolicy =全部,謝謝 – cazador

回答

1

究竟發生了什麼?我認爲你的問題可能是由於第二個孩子上的組件沒有被創建,直到該視圖被打開,有很多解決方案,你可以在第二個視圖的創建完成後編寫一些代碼,正確的值,您可以使用數據綁定將文本輸入綁定到同一個字符串,或者您可以嘗試將creationPolicy設置爲all。 我的答案是基於我的上述假設,所以如果我錯了,請給出更多的細節。

檢查這個http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7cb8.html#WS2db454920e96a9e51e63e3d11c0bf69084-7ae5,並嘗試把creationPolicy設置爲所有然後讓我們知道,如果問題解決

+0

我編輯了我的文章 – cazador

0

使用createDefferedContent()代替:

for (var i:int = 0; i < accordion.numChildren; i++) 
{ 
    (accordion.getElementAt(i) as NavigatorContent).createDeferredContent(); 
} 

此方法創建的兒童和他們的成分在背景。不要像我那樣使用creationPolicy,因爲這會導致與內存相關的問題。