change只能调用未激活的..而mouseDown会把Tab下面的Canvas也给加上..我该用什么事件才能够调用呢?
7 个解决方案
#1
楼主没深入理解TabNavigator
这个容器是将选项卡和视图作为一个整体关联,而你现在的需求实质上已经在分离选项卡和视图了,所以用它解决不了的,当然你重写组件另当别论~~~
有个跟它类似的组件TabBar,显示效果差不多!但它分离了选项卡和视图(可以分别控制)!
试着用下应该就能满足你的需求~~~~
这个容器是将选项卡和视图作为一个整体关联,而你现在的需求实质上已经在分离选项卡和视图了,所以用它解决不了的,当然你重写组件另当别论~~~
有个跟它类似的组件TabBar,显示效果差不多!但它分离了选项卡和视图(可以分别控制)!
试着用下应该就能满足你的需求~~~~
#2
还是附上一个官方例子给你
<?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事件里控制即可~~~
<?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事件里控制即可~~~
#3
不知道楼主,想干什么?
#4
你的意思,是没有激活的TAB页就不能调用页中的控件
你可以将TabNavigator控件的属性设置一下就好了 creationPolicy="all"
这样默认情况下全部tab页都激活,你也可以在运行时调用了
你可以将TabNavigator控件的属性设置一下就好了 creationPolicy="all"
这样默认情况下全部tab页都激活,你也可以在运行时调用了
#5
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);
#6
LZ可以添加一Click 事件 再通过判断 TabNavigtor。selectedIndex 添加监听分发事件
#7
非常感谢..就是这样的 谢谢...
#1
楼主没深入理解TabNavigator
这个容器是将选项卡和视图作为一个整体关联,而你现在的需求实质上已经在分离选项卡和视图了,所以用它解决不了的,当然你重写组件另当别论~~~
有个跟它类似的组件TabBar,显示效果差不多!但它分离了选项卡和视图(可以分别控制)!
试着用下应该就能满足你的需求~~~~
这个容器是将选项卡和视图作为一个整体关联,而你现在的需求实质上已经在分离选项卡和视图了,所以用它解决不了的,当然你重写组件另当别论~~~
有个跟它类似的组件TabBar,显示效果差不多!但它分离了选项卡和视图(可以分别控制)!
试着用下应该就能满足你的需求~~~~
#2
还是附上一个官方例子给你
<?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事件里控制即可~~~
<?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事件里控制即可~~~
#3
不知道楼主,想干什么?
#4
你的意思,是没有激活的TAB页就不能调用页中的控件
你可以将TabNavigator控件的属性设置一下就好了 creationPolicy="all"
这样默认情况下全部tab页都激活,你也可以在运行时调用了
你可以将TabNavigator控件的属性设置一下就好了 creationPolicy="all"
这样默认情况下全部tab页都激活,你也可以在运行时调用了
#5
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);
#6
LZ可以添加一Click 事件 再通过判断 TabNavigtor。selectedIndex 添加监听分发事件
#7
非常感谢..就是这样的 谢谢...