TabNavigator的问题

shuzhan87 2010-02-04 10:44:21
我自定义了一个组件 继承自TabNavigator 我希望鼠标移动到一个标签上时就切换页面 而不是单击时才切换 要怎么做
...全文
151 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mayuanfei 2010-02-04
  • 打赏
  • 举报
回复
刚才那个自定义组件不够通用。我给你修改了下:

<?xml version="1.0" encoding="utf-8"?>
<mx:TabNavigator xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300" creationComplete="init()">
<mx:Script>
<![CDATA[
private function init():void
{
this.tabBar.addEventListener(MouseEvent.MOUSE_OVER, handleOver);
}

private function handleOver(evt:MouseEvent):void
{
var childName:String = evt.target.name;
var dobj:* = this.tabBar.getChildByName(childName)
this.selectedIndex = this.tabBar.getChildIndex(dobj);
}
]]>
</mx:Script>
</mx:TabNavigator>
mayuanfei 2010-02-04
  • 打赏
  • 举报
回复
我给你做了个简单的实现,你看看。
1.自定义一个TabNavigator组件。代码如下:

<?xml version="1.0" encoding="utf-8"?>
<mx:TabNavigator xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300" creationComplete="init()">
<mx:Script>
<![CDATA[
private function init():void
{
this.tabBar.addEventListener(MouseEvent.MOUSE_OVER, handleOver);
}

private function handleOver(evt:MouseEvent):void
{
switch(evt.target.label) {
case "Page1" :
this.selectedIndex = 0;
break;
case "Page2" :
this.selectedIndex = 1;
break;
case "Page3" :
this.selectedIndex = 2;
break;
}
}
]]>
</mx:Script>
</mx:TabNavigator>


2.测试页面。代码如下:

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()" xmlns:ns1="*">

<ns1:MyTabNavigator id="myTab" width="100%" height="100%" >
<mx:Canvas label="Page1" width="100%" height="100%">
<mx:Text text="第一个页面" width="100%" fontSize="21"/>
</mx:Canvas>
<mx:Canvas label="Page2" width="100%" height="100%">
<mx:Text text="第二个页面" width="100%" fontSize="21"/>
</mx:Canvas>
<mx:Canvas label="Page3" width="100%" height="100%">
<mx:Text text="第三个页面" width="100%" fontSize="21"/>
</mx:Canvas>
</ns1:MyTabNavigator>
</mx:WindowedApplication>

syeia 2010-02-04
  • 打赏
  • 举报
回复
单击和鼠标移动到标签上面,只不过是 触发方式不一样.内容是一样.

支持楼上>

Jason-Jin 2010-02-04
  • 打赏
  • 举报
回复
用监听器呗,如果按钮得到焦点,就触发事件
水中影子 2010-02-04
  • 打赏
  • 举报
回复
楼上方法很通用,支持

4,328

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计 Flex
社区管理员
  • Flex
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧