- 浏览: 271761 次
- 性别:
- 来自: 黑龙江省
文章分类
最新评论
-
leipan19890705:
AS调用JS里的呢?有没有?我的一直不成功。
JavaScript与ActionScript交互简单实例 -
newLinuxJava:
补充一下,windows7 日志配置文件的位置:Microso ...
Flex debug环境构建 -
ye_wx:
要加哪些jar包呢?麻烦列出来行吗
Java---POI--操作PPT -
brightACE:
不错,学习了
JavaScript与ActionScript交互简单实例 -
se7en8974:
留个言,回去看看。
推荐一个学习Flex chart的好网站
为什么Module里包含TabNavigator时,卸载再加载时出现错误?
这属于Module的共享代码问题(shared code),
当Module中使用managers时(如PopUpManager,DragManager, HistoryManager)容易出现这个问题,
manager的方法都是静态方法,整个应用程序中创建了一个该manager接口的singleton,
但module仅在自己的Application domain中使用该singleton, 当多个module使用同一个singleton且main
application没有使用时,就会出现这个空对象引用问题:首先引入某manager的module不能将该manager接口的singleton跟其 他module共享,其他module调用该Manager的方法时,应用程序不会再创建该manager接口的实例,这个module就无法引用到该mana ger接口的实例,就出现了空对象引用问题,可以参考Flex的源码。
默认情况下,Accordion和TabNavigator的 historyManagementEnabled =
true;而ViewStack的historyManagementEnabled = false;
所以使用TabNavigator和Accordion时要注意HistoryManager的共享代码问题。另,仅一个module使用HistoryMan ager时,卸载之后又加载该module也会出现该问题,说明第二次加载时相当于一个新的module了。
一个解决办法:
在main application 中引入相关manager,可以通过在main application中申明manager的引用即可,如:
import mx.managers.HistoryManager;
var historyManager:HistoryManager;
其他manager类似。
还可以将共享代码作为module加载到main applicaiton的application domain,具体讲解可以参考Alex
Harui的ppt:
http://blogs.adobe.com/aharui/presentations/ 下面关于module的presentation, 讲得很详细。
On 5/7/07, Wander <dnv...@gmail.com> wrote:
> 同样遇到过此问题,关注一下 (我们的解决办法是....换控件)
> 2007/5/7, 徐灿 <xucan.m...@gmail.com>:
> > 当Module第二次被加载时出现
> > TypeError: Error #1009: 无法访问空对象引用的属性或方法。
> > at mx.managers::HistoryManager$/register ()
> > at mx.containers::ViewStack/::addedHandler()
> > at flash.display:[img]editor/images/smilies/default/13.gif[/img]> > 照字面上意思是很HistoryManager有关,但是我把HistoryManager关了也没有作用= = 请高手帮帮我啊~
> > 下面我做了一个示例.
> > //-----------------主文件-----------
> > <?xml version="1.0" encoding="utf-8"?>
> > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml ">
> > <mx:HDividedBox width="100%" height="100%">
> > <mxanel width="15%" height="100%" title="导航" id="ngPanel">
> > <mxree id="adminTree" width="100%" height="100%"
> > verticalScrollPolicy="auto"
> > change="onTreeChange(event)"
> > dataProvider="{treeDp}"
> > creati
> > labelField="@label"/>
> > </mxanel>
> > <mxanel id="treeContent" width="85%" height="100%">
> > <mx:ModuleLoader id="UILoader"
> > width="100%" height="100%"
> > verticalScrollPolicy="auto"
> > horiz
> > verticalAlign="middle"
> > horiz
> > />
> > </mxanel>
> > </mx:HDividedBox>
> > <mx:Script>
> > <![CDATA[
> > import mx.events.ModuleEvent;
> > var treeDpML=<node label="信息管理" >
> > <node
> > label="数据管理" data=""/>
> > <node
> > label="系统维护" data=" dataSystemManagement.swf"/>
> > </node>
> > private function onTreeChange(eve:Event):void
> > {
> > var url:String = eve.target.selectedItem.@data ;
> > if (url != null && url != "")
> > {
> > UILoader.unloadModule();
> > UILoader.url = url;
> > }
> > }
> > ]]>
> > </mx:Script>
> > </mx:Application>
> > //-----------------Module(dataSystemManagement.swf)-----------
> > <?xml version="1.0" encoding="utf-8"?>
> > <mx:Module xmlns:mx="http://www.adobe.com/2006/mxml"
> > layout="absolute">
> > <mxabNavigator width="100%" height="100%" tabWidth="100"
> > id="myTabNavigator" >
> > <mx:Form label="tab1" width="100%" height="100%">
> > <mx:FormItem label="Label">
> > <mx:Form width="500" height="500">
> > </mx:Form>
> > </mx:FormItem>
> > </mx:Form>
> > <mx:Form label="tab2" width="100%" height="100%">
> > <mx:FormItem label="Label2">
> > <mx:Form width="500" height="500">
> > </mx:Form>
> > </mx:FormItem>
> > </mx:Form>
> > </mxabNavigator>
> > </mx:Module>
当Module中使用managers时(如PopUpManager,DragManager, HistoryManager)容易出现这个问题,
manager的方法都是静态方法,整个应用程序中创建了一个该manager接口的singleton,
但module仅在自己的Application domain中使用该singleton, 当多个module使用同一个singleton且main
application没有使用时,就会出现这个空对象引用问题:首先引入某manager的module不能将该manager接口的singleton跟其 他module共享,其他module调用该Manager的方法时,应用程序不会再创建该manager接口的实例,这个module就无法引用到该mana ger接口的实例,就出现了空对象引用问题,可以参考Flex的源码。
默认情况下,Accordion和TabNavigator的 historyManagementEnabled =
true;而ViewStack的historyManagementEnabled = false;
所以使用TabNavigator和Accordion时要注意HistoryManager的共享代码问题。另,仅一个module使用HistoryMan ager时,卸载之后又加载该module也会出现该问题,说明第二次加载时相当于一个新的module了。
一个解决办法:
在main application 中引入相关manager,可以通过在main application中申明manager的引用即可,如:
import mx.managers.HistoryManager;
var historyManager:HistoryManager;
其他manager类似。
还可以将共享代码作为module加载到main applicaiton的application domain,具体讲解可以参考Alex
Harui的ppt:
http://blogs.adobe.com/aharui/presentations/ 下面关于module的presentation, 讲得很详细。
On 5/7/07, Wander <dnv...@gmail.com> wrote:
> 同样遇到过此问题,关注一下 (我们的解决办法是....换控件)
> 2007/5/7, 徐灿 <xucan.m...@gmail.com>:
> > 当Module第二次被加载时出现
> > TypeError: Error #1009: 无法访问空对象引用的属性或方法。
> > at mx.managers::HistoryManager$/register ()
> > at mx.containers::ViewStack/::addedHandler()
> > at flash.display:[img]editor/images/smilies/default/13.gif[/img]> > 照字面上意思是很HistoryManager有关,但是我把HistoryManager关了也没有作用= = 请高手帮帮我啊~
> > 下面我做了一个示例.
> > //-----------------主文件-----------
> > <?xml version="1.0" encoding="utf-8"?>
> > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml ">
> > <mx:HDividedBox width="100%" height="100%">
> > <mxanel width="15%" height="100%" title="导航" id="ngPanel">
> > <mxree id="adminTree" width="100%" height="100%"
> > verticalScrollPolicy="auto"
> > change="onTreeChange(event)"
> > dataProvider="{treeDp}"
> > creati
> > labelField="@label"/>
> > </mxanel>
> > <mxanel id="treeContent" width="85%" height="100%">
> > <mx:ModuleLoader id="UILoader"
> > width="100%" height="100%"
> > verticalScrollPolicy="auto"
> > horiz
> > verticalAlign="middle"
> > horiz
> > />
> > </mxanel>
> > </mx:HDividedBox>
> > <mx:Script>
> > <![CDATA[
> > import mx.events.ModuleEvent;
> > var treeDpML=<node label="信息管理" >
> > <node
> > label="数据管理" data=""/>
> > <node
> > label="系统维护" data=" dataSystemManagement.swf"/>
> > </node>
> > private function onTreeChange(eve:Event):void
> > {
> > var url:String = eve.target.selectedItem.@data ;
> > if (url != null && url != "")
> > {
> > UILoader.unloadModule();
> > UILoader.url = url;
> > }
> > }
> > ]]>
> > </mx:Script>
> > </mx:Application>
> > //-----------------Module(dataSystemManagement.swf)-----------
> > <?xml version="1.0" encoding="utf-8"?>
> > <mx:Module xmlns:mx="http://www.adobe.com/2006/mxml"
> > layout="absolute">
> > <mxabNavigator width="100%" height="100%" tabWidth="100"
> > id="myTabNavigator" >
> > <mx:Form label="tab1" width="100%" height="100%">
> > <mx:FormItem label="Label">
> > <mx:Form width="500" height="500">
> > </mx:Form>
> > </mx:FormItem>
> > </mx:Form>
> > <mx:Form label="tab2" width="100%" height="100%">
> > <mx:FormItem label="Label2">
> > <mx:Form width="500" height="500">
> > </mx:Form>
> > </mx:FormItem>
> > </mx:Form>
> > </mxabNavigator>
> > </mx:Module>
发表评论
-
flash player debuger 版本下载地址
2010-05-24 11:08 1013http://www.adobe.com/support/fl ... -
Flex 强制转换类型失败:
2009-12-05 10:34 3889错误一:无法将....object 转换为 mx.messag ... -
让你的AIR程序脱离AIR环境运行
2009-08-11 12:30 5275让你的AIR程序脱离AIR环境运行 我们都很喜 ... -
推荐一个学习Flex chart的好网站
2009-05-22 01:06 3915最近在做一个与Flex chart相关的项目,特别搜索了一下F ... -
TabNavigator 初始化标签问题
2009-05-21 00:38 2669问题: 我做了一个TabNavigator,里面有2个tab ... -
加载多个module,使用PopUpManager问题解决方案
2009-05-18 17:33 1898需求背景:通过树形菜单加载多个不同的module。问题现象: ... -
Flash OBJECT和EMBED标签
2009-02-26 17:16 2075在html中插入swf ... -
flex grid 组件样式
2009-02-25 14:32 3546Grid{ horizontalGap:0; vertic ... -
在flex应用中设定全局模式样式
2009-02-25 02:23 3036通过修改模式的样式,来体验不一样的效果。(from flex ... -
自定义Flex应用在加载时的样式
2009-02-25 01:44 2600看见很多flex站点都应用了自定义的装载页面,网上搜索了一下, ... -
PopUpManager添加特效
2009-02-25 01:22 2705在使用PoPUpManager的过程中,没发现有什么自带的效果 ... -
PopUpManager小例
2009-02-25 01:11 1331PopUpManager简单用例。 思路,定义一个自定义组建- ... -
JS+AS+SWFloader ,html页面中动态加载SWF文件
2009-02-24 17:01 6610这其实就是一个js调用as的一个实例。在html中动态控制sw ... -
JavaScript与ActionScript交互简单实例
2009-02-24 00:05 4426之前一直在研究AS,虽然对JS与AS通信也充满了好奇。 ... -
Datagrid中添加自定义组件和事件相应
2009-02-23 13:09 1830更具实际应用的需要,常在Datagrid中添加一些组件。比如: ... -
懒人就要lazy------flex3-BlazeDS-Java-Hibernate
2009-02-20 02:30 2446dpHibernate - Hibernate lazy lo ... -
flash chart 汇总
2009-02-16 15:16 1792pen Flash Chart 是一个开源的Flash图表绘制 ... -
ArrayCollection更新单个对象数据
2009-02-15 23:15 1940初始化ArrayCollection private v ... -
Flex 学习资源
2009-01-15 23:08 1286为了学习方便,将一些比较经典的学习资源总结如下。 学习 ... -
Flex 中的元数据标签
2009-01-12 17:36 1126[Style(name="paddingLeft&q ...
相关推荐
在Flex开发中,TabNavigator组件是常用于创建带有选项卡的用户界面的工具。它允许用户在多个视图之间切换,每个视图对应一个选项卡。"flex TabNavigator tab倒置"这个标题可能指的是开发者想要实现一个特殊的布局,...
在开发移动应用或者Web应用时,常常会使用到导航组件来组织不同的页面,其中TabNavigator是一种常见的导航方式,它在底部或顶部展示一系列标签,用户可以通过点击这些标签切换不同的页面。在React Native或React.js...
在这个“带图标的TabNavigator的使用”示例中,我们将探讨如何为每个选项卡添加图标,从而增强用户界面的视觉吸引力和易用性。 首先,我们需要了解`TabNavigator`的基本结构。`TabNavigator`是`Container`类的一个...
Flex3 是Adobe Flex框架的第三个主要版本,它是一款...`.src`目录可能包含源代码文件,例如MXML和ActionScript文件,这些文件可能包含了TabNavigator的具体实现。要深入理解这个例子,你需要查看`.src`目录下的源代码。
NULL 博文链接:https://zhangyinyou.iteye.com/blog/671128
"遮盖式 TabNavigator"可能指的是在设计时或运行时TabNavigator的特定样式或行为,其中选项卡可能会覆盖其他内容,而不是简单地堆叠或切换。 这篇博客文章(虽然链接不可用)可能深入探讨了如何自定义Flex中的...
默认情况下,TabNavigator的标签页是水平排列的,但在这个特定的实例中,我们将讨论如何将TabNavigator的标签页设置为垂直(竖排)显示。 创建竖排TabNavigator的关键在于自定义布局策略。在Flex3中,组件的布局由...
在Flex3中,TabNavigator是一种容器控件,用于展示多个视图,并且这些视图可以通过标签页进行切换。TabNavigator的每个标签页通常关联一个ViewStack或其他容器,用于存放不同的内容。然而,标准的TabNavigator并不...
"TabNavigator_ScrollableMenu"便是为满足这一需求而诞生的一种解决方案,它被誉为比flexlib.swc中的SuperTabNavigator更为高效和实用。 首先,我们要理解TabNavigator的基本概念。TabNavigator是一种容器,它可以...
在React Native(RN)开发中,`StackNavigator`和`TabNavigator`是两个核心的导航组件,它们用于构建用户界面的导航结构。这篇文章将详细介绍这两个组件的使用和它们结合的实践。 `StackNavigator`是由React ...
在Flex框架中,TabNavigator组件是用来创建标签导航界面的一种方式,它能够展示一组标签页,每个标签页关联一个视图。在Flex应用中,为了提升用户体验,通常需要对TabNavigator的Tabs进行样式定制,使得它们更符合...
NULL 博文链接:https://toeo.iteye.com/blog/644341
本文将深入探讨如何使用`TabNavigator`来实现一个React Native底部菜单,并涵盖相关的核心知识点。 `TabNavigator`是React Navigation库中的组件,它允许开发者轻松地创建带有底部标签的导航结构。React Navigation...
这是一个封装好的flex项目,可以直接运行,TestTabNavigator.mxml是运行主页。里面定义了TabNavigator控件选中与被选中的皮肤类,皮肤类可以自己进行更改,也可以设置颜色渐变等等。希望对大家有帮助。
这个问题通常出现在尝试在非事件分发器对象上设置数据绑定时。解决方法是使用ObjectProxy类,它可以充当IEventDispatcher,从而允许在任何对象上进行数据绑定。 ### 8. MVC架构中,AS3时是写在MXML还是AS文件中? ...
在本例中,我们将使用`react-navigation`库,这是一个强大的React-Native导航解决方案,提供了多种导航类型,包括TabNavigator。 首先,确保已经安装了`react-navigation`库。如果还没有安装,可以通过npm或yarn...
如果需要在运行时动态添加或删除选项卡,可以通过`TabNavigator`的`addChild()`和`removeChild()`方法实现。例如,动态添加一个新的选项卡: ```actionscript var newTab:Canvas = new Canvas(); newTab.label =...
Flex3是一种基于Adobe Flash Player运行时的开源框架,主要用于创建丰富的互联网应用程序(RIA)。它提供了强大的组件库和编程模型,让开发者能够构建交互性强、视觉效果丰富的Web应用。Access则是微软开发的一种...
在Flex开发中,创建用户界面时,我们常常会遇到需要展示多行Tab导航的情况。默认情况下,Flex的TabNavigator组件的TabBar控件只会在一行内显示Tab项,但通过自定义布局和样式,我们可以轻松实现多行Tab的展示。本...
7. **TabNavigator的creationPolicy**:`TabNavigator` 的 `creationPolicy` 属性用于控制其子项的创建策略,如设置为 `lazy` 表示只有在子项首次可见时才会创建它们。 8. **获取当前URL**:可以使用 `Application....