我不知道我怎麼會值傳遞給在ViewStack「SelectedChild」:在ViewStack
在下面的例子中,我試圖在一個叫「註冊」的形式設置一個公共屬性在我從另一個稱爲「登錄」的表單導航之後。
結果我得到的似乎是一個編譯錯誤:
Error: Access of possibly undefined property pagename through a reference
with static type mx.core:INavigatorContent.
vsMain.selectedChild.pagename = "register page";
任何想法的解決辦法是什麼呢? 謝謝。
<mx:Panel x="0" y="0" width="285" height="221"
layout="absolute" title="ViewStack Basic ">
<mx:ViewStack x="0" y="0" id="vsMain" width="100%" height="100%">
<mx:Canvas id="cnvLogin" label="Login" width="100%" height="100%">
<mx:Script>
public function myClick():void {
vsMain.selectedChild=cnvRegister;
vsMain.selectedChild.pagename = "register page";
}
</mx:Script>
<mx:Label x="10" y="10" text="Login Page" fontWeight="bold"/>
<mx:Label x="10" y="36" text="Username:"/>
<mx:TextInput x="85" y="34" id="txtLoginUser"/>
<mx:Label x="10" y="62" text="Password:"/>
<mx:TextInput x="85" y="60" id="txtLoginPass"/>
<mx:Button x="10" y="100" label="Login" id="butLogin"/>
<mx:LinkButton x="126" y="100" label="Need to Register?" enabled="true"
click="myClick()"/>
</mx:Canvas>
<mx:Canvas id="cnvRegister" label="Register" width="100%" height="100%">
<mx:Script>
[Bindable]
public var pagename:String;
</mx:Script>
<mx:Label x="10" y="10" text="{name}" fontWeight="bold"/>
<mx:Label x="10" y="36" text="uname"/>
<mx:TextInput x="107" y="34" id="txtRegUser" width="138"/>
<mx:Label x="10" y="62" text="Password:"/>
<mx:TextInput x="107" y="60" id="txtRegPass" width="138"/>
<mx:Label x="10" y="90" text="Password Again:"/>
<mx:TextInput x="107" y="88" id="txtRegPassAgain" width="138"/>
<mx:Button x="10" y="141" label="Register" id="butRegister"/>
<mx:LinkButton x="107" y="141" label="Already Registered?" enabled="true"
click="{vsMain.selectedChild=cnvLogin}"/>
</mx:Canvas>
</mx:ViewStack>
</mx:Panel>
</mx:Application>
我有一個錯誤,試圖爲Canvas對象創建dataProvider: 錯誤:無法解析組件類型爲mx.containers.Canvas的屬性'dataProvider'。 我做得不對? –
user270398
2011-03-19 21:39:12
是的。 Canvas沒有dataProvider屬性,您需要通過創建一個自定義組件(創建一個新的mxml文件)來創建它,該組件可以擴展Canvas(或任何您想要的UIComponent),並在其中添加dataProvider getter/setter。您應該閱讀如何創建擴展組件。 – 2011-03-21 20:17:43