2011-09-20 2 views
0

다른 게시물을 몇 번 보았습니다. 그러나 실제로 어떤 문제가 발생했는지, 해결책이 무엇인지 알려주지 않았습니다.DropDownList Flex 4.5가 작동하지 않습니다.

나는 loginview가 있고 나는 파슬리에 의해 주입되는 데이터 모델과 프리젠 테이션 모델을 가지고있다.

갑자기 드롭 다운 목록에서 "작동 중"이 중지되었습니다. 목록은 DM의 일부 데이터에 바인딩됩니다. 목록을 클릭 할 수 있지만 드롭 다운이 발생하지 않으며 전혀 오류가 발생하지 않습니다. 그냥 나타나지 않습니다.

응용 프로그램이 AIR 응용 프로그램이고 다른 점이 있으면 LoginView가 기본 창에 있습니다.

<?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:view="com.guhsd.academicnotifier.icon.view.*" 
         creationComplete="onCreationComplete(event)" 
         alpha="0"> 


    <fx:Script> 
     <![CDATA[ 
      import spark.filters.DropShadowFilter; 
      import com.greensock.TweenMax; 
      import com.greensock.easing.Quad; 
      import com.guhsd.academicnotifier.events.LoginEvent; 
      import com.guhsd.academicnotifier.login.model.LoginDM; 

      import mx.binding.utils.BindingUtils; 
      import mx.events.FlexEvent; 

      [Inject] 
      public var pm : LoginPM; 
      [Inject] 
      [Bindable] 
      public var dm : LoginDM; 
      [Bindable] 
      public var fieldsValid : Boolean; 

      [MessageHandler(selector="isloggedin")] 
      public function loggedinHandler(e : Event) : void 
      { 
       TweenMax.to(this, 1, { autoAlpha:0 }); 
      } 

      private function onCreationComplete(event : FlexEvent) : void 
      { 
       setTimeout(checkLoginKey, 500); 

      } 

      private function showOrHide(show : Boolean) : void 
      { 
       var alpha_value : int; 
       var scaleXY : int = 1; 
       var newVertical : Number = 0; 
       if (show) 
       { 

        alpha_value = 1; 
       } 
       else 
       { 

       } 

       TweenMax.to(this, 0.25, { autoAlpha:alpha_value, verticalCenter:newVertical, ease:Quad.easeOut }); 
      } 

      private function checkLoginKey() : void 
      { 
       var loginEvent : LoginEvent = new LoginEvent(LoginEvent.CHECK_LOGIN_KEY); 
       dispatchEvent(loginEvent); 

       setTimeout(function() : void 
       { 
        BindingUtils.bindSetter(showOrHide, dm, "showview"); 
        BindingUtils.bindSetter(setDefaultSchoolSelection, dm, "lastSelectedSchool"); 
       }, 2000); 
      } 

      private function setDefaultSchoolSelection(schoolName : String) : void 
      { 
       if (schoolName != null) 
       { 
        for (var i: String in cb_schoollist.dataProvider) 
        { 
         var name : String = cb_schoollist.dataProvider.getItemAt(int(i)).Name; 

         if (schoolName == name) 
          cb_schoollist.selectedIndex = int(i); 
        } 
       } 
      } 
     ]]> 
    </fx:Script> 

    <fx:Metadata> 
     [Event(name="checkLoginKey", type="com.guhsd.academicnotifier.events.LoginEvent")] 
     [ManagedEvents("checkLoginKey")] 
    </fx:Metadata> 

    <s:Rect top="0" bottom="0" left="0" right="0" 
      topRightRadiusX="50" topRightRadiusY="50"> 
     <s:fill> 
      <s:LinearGradient> 
       <s:GradientEntry color="#667178"/> 
       <s:GradientEntry color="#8C9BA5"/> 
      </s:LinearGradient> 
     </s:fill> 
    </s:Rect> 
    <s:VGroup horizontalCenter="0" verticalAlign="middle" gap="0" 
       paddingTop="20" 
       paddingBottom="10" paddingLeft="50" 
       width="100%"> 
     <s:HGroup verticalAlign="middle" paddingLeft="40"> 
      <s:Label text="Academic and Disipline Referrals" 
        color="#FF9900" fontSize="20"/> 
      <mx:Spacer width="100%"/> 
      <s:Label color="#cb0000" text="{dm.error_message}" 
        width="250"/> 
     </s:HGroup> 
     <s:HGroup width="100%" paddingRight="100" paddingTop="10"> 
      <mx:Spacer width="100%"/> 
      <s:Form id="form"> 

       <s:FormItem label="Username"> 
        <s:TextInput id="tx_username" width="200" 
           text="{dm.user_name}" 
           enter="pm.login(tx_username.text, tx_password.text, cb_schoollist.selectedItem.Name);"/> 
       </s:FormItem> 
       <s:FormItem label="Password" 
          requiredIndicatorSource=""> 
        <!-- sf88fd --> 
        <s:TextInput id="tx_password" width="200" 
           text="" enter="pm.login(tx_username.text, tx_password.text, cb_schoollist.selectedItem.Name);" 
           displayAsPassword="true"/> 
       </s:FormItem> 
       <s:FormItem label="School"> 
        <s:DropDownList id="cb_schoollist" 
           dataProvider="{dm.school_list}" 
           labelField="Name" 
           selectedIndex="0" width="100%" 
           close="pm.setVPList(event.currentTarget.selectedItem)"/> 
       </s:FormItem> 
       <s:FormItem> 
        <s:HGroup width="200"> 
         <mx:Spacer width="100%"/> 
         <s:Button label="Cancel" click="pm.quit()"/> 
         <s:Button label="Login" click="{pm.login(tx_username.text, tx_password.text, cb_schoollist.selectedItem.Name);}"/> 
        </s:HGroup> 
       </s:FormItem> 
      </s:Form> 
     </s:HGroup> 
     <s:HGroup verticalAlign="middle" paddingLeft="40" paddingBottom="20"> 
      <view:Icon/> 
      <s:VGroup filters="{[ new DropShadowFilter() ]}" gap="0"> 
       <mx:Spacer height="10"/> 
       <s:Label text="GUHSD" color="#ffffff" fontSize="30"/> 
       <s:Label text="Academic Referrals" color="#ffffff" fontSize="25"/> 
      </s:VGroup> 
     </s:HGroup> 
    </s:VGroup> 

</s:Group> 

답변

0

주입을 사용하지 않고 작동합니까? 나는이 관련이 있는지 잘 모릅니다,하지만 우리는 그런 일을하고 이전 버전에서 유사한 문제를 해결

:.

combobox.dataProvider = Model.getInstance() 데이터; combobox.dropdown.dataProvider = Model.getInstance(). data;

SDK 3.5의 Combobox에 대한 해결 방법이지만 비슷한 문제 일 수 있습니다.

+0

글쎄, 문제는 무엇인지 알지 못했다. 뷰는 메인 애플리케이션 뷰에 있지만 creationComplete 이후에는 새로운 스파크 창을 생성합니다. 일단 새로운 AIR Window에 추가를 중단하고 기본 WindowedApplication에 긴 뷰를 남겨두면 문제는 사라집니다. – mattwallace

관련 문제