- 浏览: 1148758 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (411)
- Java Foundation (41)
- AI/机器学习/数据挖掘/模式识别/自然语言处理/信息检索 (2)
- 云计算/NoSQL/数据分析 (11)
- Linux (13)
- Open Source (12)
- J2EE (52)
- Data Structures (4)
- other (10)
- Dev Error (41)
- Ajax/JS/JSP/HTML5 (47)
- Oracle (68)
- FLEX (19)
- Tools (19)
- 设计模式 (4)
- Database (12)
- SQL Server (9)
- 例子程序 (4)
- mysql (2)
- Web Services (4)
- 面试 (8)
- 嵌入式/移动开发 (18)
- 软件工程/UML (15)
- C/C++ (7)
- 架构Architecture/分布式Distributed (1)
最新评论
-
a535114641:
LZ你好, 用了这个方法后子页面里的JS方法就全不能用了呀
页面局部刷新的两种方式:form+iframe 和 ajax -
di1984HIT:
学习了,真不错,做个记号啊
Machine Learning -
赵师傅临死前:
我一台老机器,myeclipse9 + FB3.5 可以正常使 ...
myeclipse 10 安装 flash builder 4.6 -
Wu_Jiang:
触发时间在将来的某个时间 但是第一次触发的时间超出了失效时间, ...
Based on configured schedule, the given trigger will never fire. -
cylove007:
找了好久,顶你
Editable Select 可编辑select
常会碰到的错误:TypeError: Error #1009: 无法访问空对象引用的属性或方法。:
http://hillelcoren.com/2008/09/19/flex-error-1009-cannot-access-a-property-or-method-of-a-null-object-reference/
Flex 2 Runtime Error 1009 and Runtime Modules:
http://life.neophi.com/danielr/2006/07/flex_2_runtime_error_1009_and.html
我碰到的Error #1009:
在一个弹出页面的TitleWindow的写了initialize="initComboBox();":
本次问题表明:了解mxml文件的初始化顺序是至关重要的!不要在initialize中访问本页面的组件,因为这样可能会出现不可预知的错误!
关于Flex Application 初始化顺序:
http://wuaner.iteye.com/blog/1054116
问题代码:出错:总结:之所以犯这个错误,是因为参照了下面的帖子(该帖Combox里放的是mx:XMLList,Combox的labelFunction中使用 obj.@atr 的方式取Combox的item的属性)。总之一句话吧,Copy别人代码,出错在所难免;但倒也能长点知识:
Creating a simple label function on a Flex ComboBox control:
http://blog.flexexamples.com/2007/09/25/creating-a-simple-label-function-on-a-flex-combobox-control/
在<mx:itemRenderer>中使用内联的<fx:Script>时,得到如下Warning:
官方解释:
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/compilerWarnings.html
http://stackoverflow.com/questions/245155/default-namespace-scope-warning-1084-in-flex-script-file
http://www.flexer.info/2008/01/07/publicprotectedprivateinternalstatic/
Warning:
原因:vo chuter未声明为绑定对象。未声明为Bindable。
解决办法:将FidsDepfChuterVo声明为[Bindable]即可:
一个警告:
Flex Error : class is not an IEventDispatcher:
http://blog.flexuous.com/2006/10/25/flex-error-class-is-not-an-ieventdispatcher/
Flex Warning: Unable to bind to property ‘XXX’ on class ‘XXX’:
http://www.thedesilva.com/2009/02/flex-warning-unable-to-bind-to-property-%E2%80%98xxx%E2%80%99-on-class-%E2%80%98xxx%E2%80%99/
对于一个单个的对象Object,想解决这个问题,使用代理对象 ObjectProxy 来代理原对象是比较好的解决办法:
从而得出结论:
前台value object和后台pojo的相互转换,必须是相互的。
建立VO对象,并指定其RemoteClass,仅能使前台Vo(这里的ComboBoxVo)在传给java后台后能被识别为java pojo(这里的ComboBoxEntity),即作用于前台FLEX Vo转后台Java POJO的时候。
而对于后台Java POJO转前台Flex Vo,必须在mxml文件中注册Flex Vo
Why does adding Bindable to a Getter and Setter Method cause a compiler warning?
http://www.jeffryhouser.com/index.cfm/2008/12/16/Why-does-adding-Bindable-to-a-Getter-and-Setter-Method-cause-a-compiler-warning
http://hillelcoren.com/2008/09/19/flex-error-1009-cannot-access-a-property-or-method-of-a-null-object-reference/
Flex 2 Runtime Error 1009 and Runtime Modules:
http://life.neophi.com/danielr/2006/07/flex_2_runtime_error_1009_and.html
我碰到的Error #1009:
在一个弹出页面的TitleWindow的写了initialize="initComboBox();":
/** * remark routeN等 都为本titleWindow页的ComboBox组件 * */ private function initComboBox():void { ///fidsDepfVo不会为null remark.selectedIndex = 1; route1.selectedIndex = 1; route2.selectedIndex = 2; route3.selectedIndex = 3; route4.selectedIndex = 4; route5.selectedIndex = 5; route6.selectedIndex = 6; }结果在route1那行代码报了“无法访问空对象引用的属性或方法”;经debug,发现route1及其后的route2-6居然都为null(remark不为null,为ComboBox实例)!(说明下:页面中ComboBOx remark 是定义在 route1-6 六个 ComboBox之前的)。后来将 initialize="initComboBox();" 改为 creationComplete="initComboBox();" ,不再报错。
本次问题表明:了解mxml文件的初始化顺序是至关重要的!不要在initialize中访问本页面的组件,因为这样可能会出现不可预知的错误!
关于Flex Application 初始化顺序:
http://wuaner.iteye.com/blog/1054116
values of type spark.layouts.supportClasses.LayoutBase cannot be represented in texthttp://flexspaghetti.wordpress.com/2009/06/13/setting-the-layout-property-in-flex-4/
问题代码:
引用
<s:ComboBox width="124" id="term1" change="select_changeHandler(event, this.term1);" dataProvider="{this.parentApplication.terminalDataList}" labelFunction="terminalCombineDisplay" />
private function terminalCombineDisplay(item:Object):String { if(null!=item) { return StringUtil.substitute("{0}-{1}", item.@code, item.@cname); } else { return null; } }
引用
ReferenceError: Error #1081: 在 Object 上找不到属性 code,且没有默认值。
原因:引用
Object item 是通过调用remoteObject从后台得的ArrayCollection;而 obj.@atr这种取属性的方式是mx:XMLList才可以用的(貌似是?有待着日再议;反正用在ArrayCollection上确实不行)。
解决办法:取属性时去掉@:引用
private function terminalCombineDisplay(item:Object):String { if(null!=item) { return StringUtil.substitute("{0}-{1}", item.code, item.cname); } else { return null; } }
Creating a simple label function on a Flex ComboBox control:
http://blog.flexexamples.com/2007/09/25/creating-a-simple-label-function-on-a-flex-combobox-control/
在<mx:itemRenderer>中使用内联的<fx:Script>时,得到如下Warning:
%s will be scoped to the default namespace: %s internal. It will not be visible outside of this package.
官方解释:
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/compilerWarnings.html
引用
Not declaring a namespace is a coding style preference. Enable this warning if you want to be reminded when you forget to declare a namespace or access specifier for a definition. Without one, the definition is not visible to code located outside of this file. To make it visible to code outside this file, declare it with the access specifier public or with a namespace declaration. To keep the definition local to this file and avoid this warning, declare the definition as private.
So,出该warning的原因就是未为内联script里的var变量定义加访问修饰符的原因,解决办法就是加上访问修饰符:
http://stackoverflow.com/questions/245155/default-namespace-scope-warning-1084-in-flex-script-file
引用
Stick a private, protected, internal or public before the function declaration:
这里引出flex的访问修饰符及其可见性:
private function btnBadLogin_onClick():void
http://www.flexer.info/2008/01/07/publicprotectedprivateinternalstatic/
引用
Warning:
Data binding will not be able to detect assignments to 'cht1'出现Warning的代码:
<fx:Binding source="cht1.selectedItem.data" destination="fidsDepfVo.chuter.cht1" twoWay="true"/>
原因:vo chuter未声明为绑定对象。未声明为Bindable。
解决办法:将FidsDepfChuterVo声明为[Bindable]即可:
package com.bcia.fids.ops.depf.entity { [Bindable] [RemoteClass(alias="com.bcia.fids.application.comm.entity.FidsDepfChuter")] public class FidsDepfChuterVo { public function FidsDepfChuterVo() { } public var id:String;
一个警告:
warning: unable to bind to property 'data' on class 'Object' (class is not an IEventDispatcher)警告代码:
<fx:Binding source="domint.selectedItem.data" destination="fidsDepfVo.domint" twoWay="true"/>警告原因:domint是个ComboBox,其dataProvider是放有Object的ArrayCollection。因为Object不是EventDispatcher,所以当Object的属性change的时候,就无法dispatch "propertyChange"这个事件
Flex Error : class is not an IEventDispatcher:
http://blog.flexuous.com/2006/10/25/flex-error-class-is-not-an-ieventdispatcher/
Flex Warning: Unable to bind to property ‘XXX’ on class ‘XXX’:
http://www.thedesilva.com/2009/02/flex-warning-unable-to-bind-to-property-%E2%80%98xxx%E2%80%99-on-class-%E2%80%98xxx%E2%80%99/
对于一个单个的对象Object,想解决这个问题,使用代理对象 ObjectProxy 来代理原对象是比较好的解决办法:
import mx.events.PropertyChangeEvent; import mx.utils.ObjectUtil; import mx.utils.ObjectProxy; import mx.utils.StringUtil; var a:Object = { name: "Tyler", age: 5, ssnum: "555-55-5555" }; var p:ObjectProxy = new ObjectProxy(a); p.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, updateHandler); p.name = "Jacey"; p.age = 2; delete p.ssnum; // handler function function updateHandler(event:PropertyChangeEvent):void { trace(StringUtil.substitute("updateHandler('{0}', {1}, {2}, {3}, '{4}')", event.kind, event.property, event.oldValue, event.newValue, event.target.uid)); } // trace output updateHandler('opUpdate', name, Jacey, '698AF8CB-B3D9-21A3-1AFFDGHT89075CD2') updateHandler('opUpdate', age, 2, '698AF8CB-B3D9-21A3-1AFFDGHT89075CD2') updateHandler('opDelete', ssnum, null, '698AF8CB-B3D9-21A3-1AFFDGHT89075CD2')[b][size=small]但我现在遇到的问题是:通过remoteObject调用java后台(后台java方法的返回类型为List<ComboBoxEntity>)返回的ArrayCollection中的对象为Object类型。那怎么办那?还是用ObjectProxy,通过遍历远程返回的list逐个代理里头的对象是未尝不可的:
private function onResult(r:ResultEvent) : void { var quotes: ArrayCollection = r.result.quotes; var wrappedQuotes = new ArrayCollection(); for each (var quote in quotes) wrappedQuotes.addItem(new ObjectProxy(quote)) view. dataProvider = wrappedQuotes; }但如果数据量比较客观,则这个遍历的操作就显得很是不该的。于是想用其他的办法来做。首先想到的是在本地建立一个VO:[/size][/b]
package com.bcia.fids.ops.depf.entity { [Bindable] [RemoteClass(alias="com.bcia.fids.application.maintenance.ops.depf.dto.ComboBoxEntity")] public class ComboBoxVo { public function ComboBoxVo() { } public var id:String; //数据库主键 public var label:String; ///显示label(中文名称等) public var data:String; //业务主键code等 } }但经测试后发现,java后台返回的ArrayCollection中存放的仍然是Object!后来通过在mxml文件中通过registerClassAlias注册ComboBoxVo,解决了这个问题,ArrayCollection中存放的对象不再是Object,而变成了需要的ComboBoxVo:
<fx:Script> <![CDATA[ flash.net.registerClassAlias("lasjdlkfajskdfj",ComboBoxVo); import com.bcia.fids.ops.depf.entity.ComboBoxVo; ...至此,这个从java后台传回的ArrayCollection中存放的不再是Object,而是我们已经声明为[Bindable]的ComboBoxVo;从而在使用它作为ComboBox的DataProvider,并将这个ComboBox与fidsDepfVo的某属性做双向绑定的时候,不再报这个警告。
从而得出结论:
前台value object和后台pojo的相互转换,必须是相互的。
建立VO对象,并指定其RemoteClass,仅能使前台Vo(这里的ComboBoxVo)在传给java后台后能被识别为java pojo(这里的ComboBoxEntity),即作用于前台FLEX Vo转后台Java POJO的时候。
而对于后台Java POJO转前台Flex Vo,必须在mxml文件中注册Flex Vo
flash.net.registerClassAlias("JAVA端的类全名",AS类名);
Why does adding Bindable to a Getter and Setter Method cause a compiler warning?
http://www.jeffryhouser.com/index.cfm/2008/12/16/Why-does-adding-Bindable-to-a-Getter-and-Setter-Method-cause-a-compiler-warning
发表评论
-
myeclipse 10 安装 flash builder 4.6
2011-12-11 12:47 15454从Flash Builder 4 之后,ado ... -
FLEX:Nested Object & Nested Data Grid
2011-08-15 18:14 2159Flex Nested Object & Nested ... -
FLEX 服务器端交互: remoteObject & AsyncToken & 数据定时刷新 & Timer
2011-06-21 18:47 2788动态调用RemoteObject: Dynamically i ... -
FLEX : Tree & contextMenu & Array's filter & ArrayCollection's filterFunction
2011-05-29 16:05 1932Using Flex 4.5 / Using data-dri ... -
FLEX : ObjectProxy & <fx:Model> tag
2011-05-28 21:37 2023今天碰到了一个非常让我困扰的问题,使我觉得很有必要对Objec ... -
Flex:Application&Variable Scope(this owner parent parentApp parentDoc outerDoc)
2011-05-28 17:18 1433关键字: this owner parent parentA ... -
Flex : Performance tuning 性能调优
2011-05-28 14:50 1708附件: Flex Application Performanc ... -
FLEX example 例子
2011-05-28 12:12 3234How to find an ArrayCollection ... -
FLEX : Validator 验证
2011-05-26 23:57 2212Data Access and Interconnectivi ... -
FLEX : Event 事件
2011-05-24 19:51 1724ActionScript 3.0 Developer’s Gu ... -
FLEX:Data Binding 数据绑定
2011-05-24 14:44 3645务须精读的文章: Flex data binding pitf ... -
FLEX Component 组件 汇总
2011-05-23 13:56 2312Combox默认将对象中名为label的属性作为显示用的lab ... -
FLEX : dragEnabled & dropEnabled
2011-05-22 17:38 1720通过设置dragEnabled属性为true,可以使这些控件作 ... -
FLEX Data type 数据类型
2011-05-22 09:21 2092Programming ActionScript 3.0 / ... -
Flex: labelFunction versus ItemRenderer
2011-05-22 07:16 3297When to Use labelFunction versu ... -
Flex Application 初始化顺序
2011-05-22 06:15 1670http://blog.csdn.net/chengyong ... -
Flex Metadata 元数据:Bindable(注意首字母大写),etc
2011-05-22 06:08 1782Adobe® Flex™ 3.2 语言参考 -> 元数据 ... -
FLEX笔记
2009-04-15 10:29 2347Adobe Flex 4 官方资料库: http://help ...
相关推荐
Flex学习与总结 Flex是一种用于构建富互联网应用(RIA)的开发框架,由Adobe公司提供。RIA技术旨在提升网络应用的交互性和表现力,克服传统HTML页面在用户体验上的局限。随着网络带宽的提高,RIA逐渐成为互联网应用...
Flex Socket开发总结 在开发基于Flex的应用程序时,与服务器进行实时通信是常见的需求,而Socket接口提供了这种能力。本文将深入探讨Flex中Socket开发的关键知识点,包括如何连接到Java和C++的Server Socket,以及...
网上的方法很多,我看了好多,但是就是不管用,我的情况是,在程序没发布时,直接运行没错误,但是当发布时,访问就错了,提示SecurityError: Error #2048: 安全沙箱冲突:http://localhost:8086/index.swf 不能从 ...
Grid Item Flex Error(解决方案).md
Flex是Adobe公司推出的一种用于构建富互联网应用程序(RIA)的技术,它基于ActionScript编程语言和Flex框架,可以创建交互性强、用户体验优秀的Web应用。本教程是作者精心编写的Flex学习资料,适合初学者入门,通过...
在本话题中,我们将探讨如何将Cairngorm 2.2.1版本与Flex 4进行集成,并解决可能出现的"error"错误。Flex 4,也称为Gumbo,是Adobe Flex SDK的一个重大更新,引入了Spark组件模型和FXG图形格式,为开发者提供了更多...
Flex编译错误码总结 Flex是一种基于ActionScript和MXML的开源框架,用于构建富互联网应用程序(RIA)。在开发过程中,我们可能会遇到各种编译错误,这些错误代码可以帮助开发者理解和解决遇到的问题。以下是对Flex...
flex开发知识总结 flex开发知识总结flex开发知识总结flex开发知识总结flex开发知识总结flex开发知识总结flex开发知识总结flex开发知识总结flex开发知识总结flex开发知识总结flex开发知识总结flex开发知识总结flex...
1. **Flex入门知识.docx** - 这个文档可能是对Flex的基本概念和环境设置的介绍,包括安装Flex Builder或Flash Builder IDE,理解Flex SDK,以及创建第一个Flex应用的基本步骤。它可能还会涉及MXML和ActionScript的...
个人flex开发总结文档。纯doc手书经验文档,留给还在维护应用Flex技术项目的同仁做参考。
这些错误及其解决方法的总结有助于开发者快速定位问题并采取相应措施,提高Flex与.NET之间通信的效率和稳定性。通过深入理解每个错误背后的原理,可以避免常见的陷阱,提升项目的开发效率和用户体验。
Flex安全沙箱问题是一个在开发基于Adobe Flex的应用程序时经常遇到的问题。Flex作为一个富互联网应用程序(RIA)框架,它使用ActionScript和MXML进行编程,而这些代码在运行时受到安全沙箱的限制,以防止恶意行为。...
Flex是Adobe公司开发的一种用于构建富互联网应用程序(RIA)的框架,主要基于ActionScript和MXML。本篇文章将深入探讨Flex的基本概念、数据绑定、HTTPService的使用以及创建自定义事件,这些都是Flex入门阶段需要...
2011年是Flex技术发展的一个重要阶段,这个时期的总结将涵盖Flex的主要特性、应用领域以及当时的技术趋势。 Flex主要由以下几部分组成: 1. **Flex SDK**:一个开源开发工具包,包含了编译Flex应用程序所需的...
### Flex4.5常见问题总结 #### 一、Flex4.5组件开发模型与特性 Flex4.5采用了一种基于组件的开发模型,开发者可以通过继承现有组件并扩展其功能来构建自己的应用程序。这一模型的核心优势在于提高了代码的复用性,...
【Flex培训总结】 Flex,全称Adobe Flex,是由Macromedia公司推出的,旨在支持富互联网应用程序(RIA)的开发和部署的技术组合。随着Macromedia被Adobe收购,Flex也成为了Adobe的重要产品。Flex主要使用...
Flex是CSS3中的一个布局模式,全称为"Flexible Box",中文可译为“弹性盒模型”。这个模型设计的初衷是为了让复杂的网页布局在不同尺寸和方向的设备上...希望这个Flex特效总结能为你的Web开发之旅带来新的灵感和技巧。
Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex ...