Flex4 - 使用 ButtonBar 从一个 .mxml 文件导航到另一个
Flex4 - Use ButtonBar to navigate from one .mxml file to another
我正在使用 Adobe Flash Builder 4.7 在 Flex3 中创建窗口应用程序
我有两个 .mxml 文件(Main.mxml 和 Home.mxml)
在 Main.mxml 我有 ButtonBar,当用户点击 Home ButtonBar 时,我希望用户被重定向到 Home.mxml
我已经在谷歌上搜索了一段时间,但没有明确的答案。
我查看了 ViewStack、TabNavigator 和 States,我不确定这是否是我要找的。
这是我的 Main.mxml 文件
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
applicationComplete="init()"
showStatusBar="false">
<fx:Declarations></fx:Declarations>
<fx:Style>
@namespace s "library://ns.adobe.com/flex/spark";
s|ButtonBar s|ButtonBarButton:upAndSelected,
s|ButtonBar s|ButtonBarButton:overAndSelected,
s|ButtonBar s|ButtonBarButton:downAndSelected,
s|ButtonBar s|ButtonBarButton:disabledAndSelected {
chromeColor: #666666;
color: #FFFFFF;
fontSize: 32;
}
s|ButtonBar {
chromeColor: #000000;
color: #FFFFFF;
fontSize: 32;
bottom: 0;
typographicCase: uppercase;
}
</fx:Style>
<s:ButtonBar width="100%" height="13%">
<mx:ArrayCollection>
<fx:String>Home</fx:String>
</mx:ArrayCollection>
</s:ButtonBar>
</s:WindowedApplication>
这是我的 Home.mxml 文件
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:Label text="Here"/>
</s:WindowedApplication>
请帮忙
您可以通过多种方式解决此问题。我会在我比较有经验的那篇详细说明。
首先,请看一下这个repository里面的视频,这样你就知道我在说什么了。
此应用程序使用由单个按钮组成的横向菜单,类似于 ButtonBar 的方法。
右边有一个TabNavigator,我在上面手动添加了一些MXML Views。每个视图都表示为自己的 .mxml 文件。
这是主文件的简化版本:
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication 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:views="views.*">
<s:VGroup left="0" top="0" bottom="0" width="100" horizontalAlign="center">
<s:Image width="60" height="60" source="assets/someicon.png" click="goHome(event)"/>
<s:Image width="60" height="60" source="assets/someicon.png" click="goIcons(event)"/>
</s:VGroup>
<mx:TabNavigator id="myTabNavigator" left="100" right="0" top="0" bottom="0" borderStyle="none" paddingTop="0" tabHeight="0" tabWidth="0" creationPolicy="auto" backgroundAlpha="0">
<views:HomeView />
<views:IconsView />
</mx:TabNavigator>
</s:WindowedApplication>
当用户单击其中一个按钮时,TabNavigator 将更改其索引:
protected function goHome(event:MouseEvent):void
{
myTabNavigator.selectedIndex = 0; //This value will change depending on the clicked button.
}
protected function goIcons(event:MouseEvent):void
{
myTabNavigator.selectedIndex = 1; //This value will change depending on the clicked button.
}
这 2 个函数需要在您的 fx:Script 块中。
这样您就可以从 ButtonBar 更改 TabNavigator 中当前显示的选项卡。
我正在使用 Adobe Flash Builder 4.7 在 Flex3 中创建窗口应用程序
我有两个 .mxml 文件(Main.mxml 和 Home.mxml)
在 Main.mxml 我有 ButtonBar,当用户点击 Home ButtonBar 时,我希望用户被重定向到 Home.mxml
我已经在谷歌上搜索了一段时间,但没有明确的答案。
我查看了 ViewStack、TabNavigator 和 States,我不确定这是否是我要找的。
这是我的 Main.mxml 文件
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
applicationComplete="init()"
showStatusBar="false">
<fx:Declarations></fx:Declarations>
<fx:Style>
@namespace s "library://ns.adobe.com/flex/spark";
s|ButtonBar s|ButtonBarButton:upAndSelected,
s|ButtonBar s|ButtonBarButton:overAndSelected,
s|ButtonBar s|ButtonBarButton:downAndSelected,
s|ButtonBar s|ButtonBarButton:disabledAndSelected {
chromeColor: #666666;
color: #FFFFFF;
fontSize: 32;
}
s|ButtonBar {
chromeColor: #000000;
color: #FFFFFF;
fontSize: 32;
bottom: 0;
typographicCase: uppercase;
}
</fx:Style>
<s:ButtonBar width="100%" height="13%">
<mx:ArrayCollection>
<fx:String>Home</fx:String>
</mx:ArrayCollection>
</s:ButtonBar>
</s:WindowedApplication>
这是我的 Home.mxml 文件
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:Label text="Here"/>
</s:WindowedApplication>
请帮忙
您可以通过多种方式解决此问题。我会在我比较有经验的那篇详细说明。
首先,请看一下这个repository里面的视频,这样你就知道我在说什么了。
此应用程序使用由单个按钮组成的横向菜单,类似于 ButtonBar 的方法。
右边有一个TabNavigator,我在上面手动添加了一些MXML Views。每个视图都表示为自己的 .mxml 文件。
这是主文件的简化版本:
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication 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:views="views.*">
<s:VGroup left="0" top="0" bottom="0" width="100" horizontalAlign="center">
<s:Image width="60" height="60" source="assets/someicon.png" click="goHome(event)"/>
<s:Image width="60" height="60" source="assets/someicon.png" click="goIcons(event)"/>
</s:VGroup>
<mx:TabNavigator id="myTabNavigator" left="100" right="0" top="0" bottom="0" borderStyle="none" paddingTop="0" tabHeight="0" tabWidth="0" creationPolicy="auto" backgroundAlpha="0">
<views:HomeView />
<views:IconsView />
</mx:TabNavigator>
</s:WindowedApplication>
当用户单击其中一个按钮时,TabNavigator 将更改其索引:
protected function goHome(event:MouseEvent):void
{
myTabNavigator.selectedIndex = 0; //This value will change depending on the clicked button.
}
protected function goIcons(event:MouseEvent):void
{
myTabNavigator.selectedIndex = 1; //This value will change depending on the clicked button.
}
这 2 个函数需要在您的 fx:Script 块中。
这样您就可以从 ButtonBar 更改 TabNavigator 中当前显示的选项卡。