2011-07-26 14 views
0

こんにちは私の良い人、は、StackOverflowのの

最近異なる状態でコンポーネントの場所を変更し、私は状態が変化すると、ID = languageComboと一定のDropDownListコンポーネントは、動的に再配置する必要があるコンポーネントを構築しました。 .hereには、initialとchaingrpという2つの状態のコードがあります。私はchaingrp状態が呼び出されたがdropDownListコンポーネントが変更されていないときに、dropDownListコンポーネントを初期状態の1つの位置Xから別の位置(X = 500)に変更します。誰かが私の問題点を教えてもらえますか?あなたのlanguageComboHGroup内にある

おかげ

<?xml version="1.0" encoding="utf-8"?> 
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx" 
    xmlns:components="components.*" 
    xmlns:searchComponents="searchComponents.*" 
    minHeight="500" minWidth="500"> 


<fx:Metadata> 
    [Event(name="SearchClick", type="eventClass.SelectedTableEvent")] 
</fx:Metadata> 



<fx:Script> 
    <![CDATA[ 
     import eventClass.SelectedTableEvent; 

     import mx.collections.ArrayCollection; 
     import mx.events.ListEvent; 
     import mx.events.TreeEvent; 

     import spark.events.IndexChangeEvent; 
     namespace simo="http://www.simo-project.org/simo"; 
     [Bindable] 
     public var parentXmlCopy:XML; 
     [Bindable] 
     public var treeXml:XML; 
     [Bindable] 
     private var newXml:XML; 
     private var transferredname:String; 
     public var modelType:String; 
     public var selectedModelchainIndex:int; 
     public var selectedTaskIndex:int; 





     public function set variables(_xml:XML):void{ 
      parentXmlCopy = _xml; 
     } 

     private function languageChange(event:Event):void{ 
      trace("languageChange"); 
      var cb:DropDownList=event.target as DropDownList; 
      var temp:Object=cb.selectedItem; 


      var chain:Array=[]; 
      for (var i:int=0; i < cb.dataProvider.length; i++) 
      { 
       if(cb.dataProvider[i].label == temp.label) 
       { 
        chain.push(cb.dataProvider[i].locale); 
        resourceManager.localeChain=chain; 
       } 
      } 

     } 






     protected function tree_changeHandler(event:ListEvent):void 
     { 
      use namespace simo; 
      var selectedItem:XML; 

      transferredname = tree.selectedItem.localName(); 

      switch (transferredname){ 

       case "chain_group" : currentState = "chaingroup"; 
       languageCombo.X = 500; 

       selectedItem = XML(tree.selectedItem); 

       trace(selectedItem); 

       this.chainGrpId.displayChainGrp(selectedItem); 
       break; 

      } 

     } 


      private function treeLabel(item:Object):String 
      { 

      return item.localName();   
     } 



    ]]> 
</fx:Script> 



<s:states> 
    <s:State name="initial"/> 
    <s:State name="chaingroup"/> 

</s:states> 

    <s:HGroup><!--overall outer Hgroup--> 
    <s:HGroup gap="8"> 
     <s:HGroup gap="5"> 
      <s:VGroup height="460" paddingLeft="10" paddingTop="5"> 
       <s:HGroup gap="3"> 
        <searchComponents:AutoComplete/> 
        <s:Button 
         id="searchBT" 
         height="24" 
         width="24" 
         skinClass="skins.searchBTskin"/> 
       </s:HGroup> 
       <s:List id="treeDP" height="120" width="180" labelField="@name" 
         change="treeDP_changeHandler(event)"> 
        <s:dataProvider> 
         <s:XMLListCollection source="{parentXmlCopy.children()}" /> 
        </s:dataProvider> 
       </s:List> 
       <s:Button id="delListBT" label="delList"/> 
       <s:HGroup gap="70"> 
        <s:Button 
         id="backBT" 
         label="back" 
         height="24" 
         width="24" 
         /> 
        <s:Button 
         id="nextBT" 
         label="next" 
         height="24" 
         width="24" 
         /> 

       </s:HGroup> 


       <mx:Tree id="tree" dataProvider="{treeXml}" labelField="{treeXml.localName()}" 
         top="72" left="50" labelFunction="treeLabel" 
         maxHorizontalScrollPosition="20" 
         maxVerticalScrollPosition="10" 
         showRoot="true" 
         change="tree_changeHandler(event)" 
         height="225" width="180"/> 


       <s:Button id="delTreeBT" label="delTree"/> 
      </s:VGroup> 




      <s:Group includeIn="chaingroup/> 

     </s:HGroup> 

    </s:HGroup> 

<s:HGroup paddingLeft="200" paddingTop="5" 
      x.modelOperation="-38" y.modelOperation="-22" width.modelOperation="737" 
      x.modelPrediction="-18" y.modelPrediction="-20"> 
    <s:DropDownList id="languageCombo" width="150" change="languageChange(event)" includeIn="initial" 
        dataProvider="{new ArrayCollection([{locale:'fi_FI',label:'Suomi'}, {locale:'en_US', label:'English'}])}" 
        prompt="{resourceManager.getString('modelChainUI','lang')}" 
        x.chaingroup="900" 
        x.condition="900" 
        x.modelchain="900" 
        x.task="900"/> 
</s:HGroup> 
    </s:HGroup><!--overall hgroup ends here!--> 

<s:VGroup gap="5" paddingLeft="10" 
      x.chaingroup="144" y.chaingroup="-69" height.chaingroup="148"> 
    <components:ChainGroup id="chainGrpId" includeIn="chaingroup"/> 
    </s:VGroup> 

答えて

0

HGroupは水平レイアウトのコンテナです。水平レイアウトでは、子供の座標はxyではありません(水平レイアウトなので)。

単なるGroupを使用する方がよいでしょう(HGroupには子供が1人しかいないので、水平レイアウトは意味がありません)。

+0

私はHGroupを使用しているので、ツリーコンポーネントから水平方向にdropDownListコンポーネントを配置することができます。 Groupを使用する必要がある場合は、dropDownListコンポーネントを配置する場所を何とか指定する必要があります。 X軸とY軸では、実際に正しく修正されません。とにかく私はまだHGroupを使用することができ、まだ状態の間で場所を移動することができるでしょうか? – helpdesk

+0

ええ、私は知っています。そのHGroupを離れて、ただコンポーネントを使用すると、アライメントはそれほど良いものではありません。それを取り除くことができますが、まだ場所の変更を解決するかどうかわからない場合は、HGroupコンポーネントを使用してdropDownListの位置を変更することができます。 – helpdesk