Apache flex 不使用viewstack/swiz更新可绑定变量

Apache flex 不使用viewstack/swiz更新可绑定变量,apache-flex,bindable,swiz,Apache Flex,Bindable,Swiz,我正在使用Swiz框架,并尝试使用可绑定属性更新viewstack的selectedIndex。它会到达我的事件处理程序,该处理程序更新可绑定变量,但主应用程序文件的viewstack从未实现它。可能是什么问题 thx -迈克 ================================ 主应用程序文件 } =========================== 控制器 包com.reg.controller { }就在上周,我被这个问题咬了一口 将您的[Bindable]标记放在其他标记之

我正在使用Swiz框架,并尝试使用可绑定属性更新viewstack的selectedIndex。它会到达我的事件处理程序,该处理程序更新可绑定变量,但主应用程序文件的viewstack从未实现它。可能是什么问题

thx

-迈克

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

主应用程序文件 }

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

控制器 包com.reg.controller {


}就在上周,我被这个问题咬了一口


将您的
[Bindable]
标记放在其他标记之前。出于某种原因,Flex编译器不会折叠到相应的
PropertyChangeEvent
调度中,除非您先放置
[Bindable]
标记。

有人吗?任何人绑定变量时是否有常见的陷阱?您使用的是哪个版本的Swiz?你应该考虑升级到最新版本(我推荐SWIZ 1 RC2,甚至是最新版本)。不管怎样,你能发布一下你的Swiz配置吗?您的
applicationViewModel
是原型bean吗?谢谢Gerhard。这就是问题所在,但现在,我当然遇到了编译器错误:1120:访问未定义的属性Swiz。1172:Definition org.swizframework:Swiz找不到。自早期版本以来,Swiz的包结构发生了很大变化。例如,
Swiz
类现在可以在
org.swizframework.core.Swiz
中找到。请看一下这本书,它很有帮助。还有一个迁移指南。如果您仍然有问题,只需问另一个问题或更新此问题。您是否尝试移动[Bindable]标记?
<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>
    [Bindable] 
    public  var message:String = "";

    [Bindable]
    public  var mainViewIndex:int = PRESCREEN_VIEW;
}
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;

    }


}