2010-11-23 4 views
0

저는 Swiz 프레임 워크를 사용하고 있으며 viewstack의 selectedIndex를 바인드 가능 속성으로 업데이트하려고합니다. 그것은 바인딩 가능한 변수를 업데이 트하지만 메인 애플 리케이션 파일의 viewstack 결코 실현하지 내 이벤트 처리기에 도착. 무엇이 문제 일 수 있습니까?Bindable 변수가 viewstack/swiz로 업데이트되지 않습니다.

들으

- 마이크

================================

MAIN APP 파일

<mx:Script> 
    <![CDATA[ 
     import reg.model.ApplicationViewModel; 
     import beyaz.reg.swiz.SwizBeans; 
     import org.swizframework.Swiz; 

     [Autowire(bean="applicationViewModel")] 
     [Bindable] 
     public var applicationViewModel:ApplicationViewModel; 

     private function preInitialize():void { 
      Swiz.loadBeans([ SwizBeans ]); 
     } 

    ]]> 
</mx:Script> 


     <mx:ViewStack id="theViewstack" **selectedIndex=" {applicationViewModel.mainViewIndex}"** width="100%" height="100%"> 
    <prescreen:Prescreen id="prescreenView"/> 
    <login:Login id="loginView"/> 
    <profile:Profile id="profileView"/> 

</mx:ViewStack> 

=================================

ApplicationViewModel

,

패키지 com.reg.model { 공용 클래스 ApplicationViewModel { 공개 const 정적 PRESCREEN_VIEW : INT = 0; 공용 static const LOGIN_VIEW : int = 1; 공용 static const PRSNL_INFO_VIEW : int = 2;

[Bindable] 
    public var message:String = ""; 

    [Bindable] 
    public var mainViewIndex:int = PRESCREEN_VIEW; 
} 

}

===========================

컨트롤러

패키지 닷컴 .reg.controller {

import com.reg.model.ApplicationViewModel; 

import mx.collections.ArrayCollection; 
import mx.controls.Alert; 
import mx.events.DynamicEvent; 
import mx.rpc.events.FaultEvent; 
import mx.rpc.events.ResultEvent; 
import mx.core.Application; 

import org.swizframework.Swiz; 
import org.swizframework.controller.AbstractController; 

public class PrescreenController// extends AbstractController 
{ 
    public static const START_REGISTRATION:String = "startReg"; 

    [Autowire(bean="applicationViewModel")] 
    [Bindable] 
    public var applicationViewModel:ApplicationViewModel; 


    [Mediate(event="startReg")] 
    public function startReg():void 
      { 

       //CODE GETS TO HERE! 
       applicationViewModel.mainViewIndex = ApplicationViewModel.PRSNL_INFO_VIEW; 

    } 


} 

}

+0

누구? 누군가? 바인딩 변수를 찾을 때 흔히 볼 수있는 함정이 있습니까? – Mike6679

+0

사용중인 Swiz 버전은 무엇입니까? 최신 버전으로 업그레이드하는 것을 고려해야합니다. Swiz 1.0 RC2 또는 [Git] (https://github.com/swiz/swiz-framework)의 최신 버전을 권장합니다. 어쨌든, Swiz 설정을 게시 할 수 있습니까? 당신의'applicationViewModel'은 Prototype bean입니까? –

+0

감사합니다. Gerhard. 그게 문제 였지만 지금은 물론 컴파일러 오류가 발생합니다 : 1120 : 정의되지 않은 속성 Swiz에 대한 액세스. 1172 : 정의 org.swizframework : Swiz를 찾을 수 없습니다. – Mike6679

답변

0

지난 주에이 문제로 조금 낫습니다.

[Bindable] 태그를 다른 태그 앞에 넣으십시오. 어떤 이유로 플렉스 컴파일러는 [Bindable] 태그를 먼저 넣지 않는 한 적절한 PropertyChangeEvent 디스패치에서 폴드하지 않습니다.