TabNavigator 什么事件才是Tab的点击事件?

ft249732 2010-10-19 12:46:34
我想给TabNavigator上的每一个tab都加上一个click事件..不管它是否处于激活状态只要鼠标点击都能调用该事件.
change只能调用未激活的..而mouseDown会把Tab下面的Canvas也给加上..我该用什么事件才能够调用呢?
...全文
616 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ft249732 2010-10-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 niwenbin416 的回复:]
3L的太复杂了···LZ看一下TabNavigator的源码就知道它有TabBar控件,只是它有两个方法取得一个是protected的只能在它的子类里使用所以要用的话得继承TabNavigator重写然后加事件,还有个是mx_internal function getTabBar():TabBar看到它的nameSpace是mx_internal这样就可以根据nameSpace取得了 具体代码
……
[/Quote]
非常感谢..就是这样的 谢谢...
wanglijingloveme 2010-10-20
  • 打赏
  • 举报
回复
LZ可以添加一Click 事件 再通过判断 TabNavigtor。selectedIndex 添加监听分发事件
niwenbin416 2010-10-19
  • 打赏
  • 举报
回复
3L的太复杂了···LZ看一下TabNavigator的源码就知道它有TabBar控件,只是它有两个方法取得一个是protected的只能在它的子类里使用所以要用的话得继承TabNavigator重写然后加事件,还有个是mx_internal function getTabBar():TabBar看到它的nameSpace是mx_internal这样就可以根据nameSpace取得了 具体代码

var item:TabBar = tab.mx_internal::getTabBar();//tab为TabNavigator的实例名或ID
item.addEventListener(ItemClickEvent.ITEM_CLICK,clickHandler);
Jason-Jin 2010-10-19
  • 打赏
  • 举报
回复
你的意思,是没有激活的TAB页就不能调用页中的控件

你可以将TabNavigator控件的属性设置一下就好了 creationPolicy="all"

这样默认情况下全部tab页都激活,你也可以在运行时调用了
水中影子 2010-10-19
  • 打赏
  • 举报
回复
不知道楼主,想干什么?
leemiki 2010-10-19
  • 打赏
  • 举报
回复
还是附上一个官方例子给你

<?xml version="1.0"?>
<!-- Simple example to demonstrate the TabBar control. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

<mx:Script>
<![CDATA[

import mx.events.ItemClickEvent;
import mx.controls.TabBar;

[Bindable]
public var STATE_ARRAY:Array = [{label:"Alabama", data:"Montgomery"},
{label:"Alaska", data:"Juneau"},
{label:"Arkansas", data:"LittleRock"}
];

private function clickEvt(event:ItemClickEvent):void {
// Access target TabBar control.
var targetComp:TabBar = TabBar(event.currentTarget);
forClick.text="label is: " + event.label + ", index is: " +
event.index + ", capital is: " +
targetComp.dataProvider[event.index].data;
}
]]>
</mx:Script>

<mx:Panel title="TabBar Control Example" height="75%" width="75%"
paddingTop="10" paddingBottom="10" paddingLeft="10" paddingRight="10">

<mx:Label width="100%" color="blue"
text="Select a tab to change the current panel."/>

<mx:TabBar itemClick="clickEvt(event);">
<mx:dataProvider>{STATE_ARRAY}</mx:dataProvider>
</mx:TabBar>

<mx:TextArea id="forClick" height="100%" width="100%"/>

</mx:Panel>
</mx:Application>

在itemClick事件里控制即可~~~
leemiki 2010-10-19
  • 打赏
  • 举报
回复
楼主没深入理解TabNavigator

这个容器是将选项卡和视图作为一个整体关联,而你现在的需求实质上已经在分离选项卡和视图了,所以用它解决不了的,当然你重写组件另当别论~~~

有个跟它类似的组件TabBar,显示效果差不多!但它分离了选项卡和视图(可以分别控制)!

试着用下应该就能满足你的需求~~~~

4,328

社区成员

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

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