我想控制主應用程序上ViewStack的selectedIndex屬性。我在main.mxml中分配了一個變量。我試圖通過自定義組件中的函數來操作該變量; viewControl.mxml。我已經能夠用buttonBar模擬效果,但我寧願用按鈕來完成。使用按鈕組件切換selectedIndex
Main.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:Application 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:comps="comps.*" minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
import comps.viewControl;
[Bindable]
public var mainIndex:int = 0;
]]>
</fx:Script>
<comps:viewControl id="myControl"/>
<mx:ViewStack id="lgViewStack" selectedIndex="{mainIndex}">
<s:NavigatorContent id="view1">
<s:Panel id="firstPanel">
</s:Panel>
</s:NavigatorContent>
<s:NavigatorContent id="view2">
<s:Panel id="secondPanel">
</s:Panel>
</s:NavigatorContent>
</mx:ViewStack>
和組件viewControl.mxml
<?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" width="400" height="300">
<fx:Script>
<![CDATA[
protected function changeView(index:int):void
{
mainIndex = index;
}
]]>
</fx:Script>
<s:Button id="myButton" click="changeView(1);"/>
在編譯時,我收到以下錯誤信息:未定義的屬性mainIndex的訪問在viewControl.mxml中。有什麼我可以做的功能集或功能獲取從Main.mxml mainIndex?
嗯。你在變量的範圍上和你之前的問題有完全相同的問題http://stackoverflow.com/q/5719389/680503 – Constantiner 2011-04-19 21:44:00
Flex中的變量範圍是一個給我帶來問題的概念。我還沒有找到專門爲我的目的解釋它的資源。如果我從主應用程序創建一個公共函數或變量,那麼直接附加的組件應該能夠讀/寫它們。 – smulholland2 2011-04-19 22:17:42
你是否清楚地瞭解面向對象的概念? Flex MXML文件只是普通的類。所以沒有區別。 – Constantiner 2011-04-20 07:24:45