Flex 数据易犯错误: 常见误用和错误
丢失静默错误(SILENT ERROR)
在某些情形下,绑定操作似乎不能正常工作,此时你可能非常懊恼并且不知道如何进行处理。
由绑定表达式抛出的、或在绑定框架调用的绑定函数中出现的异常和错误可以被静默捕获。因此,你将不会看到运行时异常,而这在 Flash Player 的调试版本中是能够看到的。这时,不仅绑定操作不能工作,而且系统不会显示错误。
为什么错误被静默捕获?
在绑定操作发生之前,实现绑定机制的代码要求满足若干条件。绑定机制将吞没所有错误以便阻止在运行时过程中抛出运行时异常。这是一种很好的机制,因为你不希望在你的应用程序中看到这些(可能的)意外错误。
请查看下面简单绑定范例:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="1024" minHeight="768"
preinitialize="handlePreinitialize()">
<fx:Script>
<![CDATA[
[Bindable]
private var xml:XML =
<users>
<user>
<name>EladElrom</name>
<address>1 Wall Street</address>
</user>
</users>;
protected function handlePreinitialize():void
{
xml = null;
//BindingManager.debugBinding("label.text");
}
]]>
</fx:Script>
<s:Label id="label" text="{xml.user.name}"/>
</s:Application>
我已经添加一个与Label组件绑定的xml变量。上面代码本可以支持执行。然而,我在组件的预初始化期间已经将该xml变量设置为null。在组件初始化序列开始时系统会下发该事件,这样该xml对象将没有name 属性。如果你运行该应用程序,你将会发现绑定操作不能执行并且错误将被系统静默捕获。
调试绑定
尽管系统可以静默地捕获错误,但你仍然可以通过某些手段了解应用程序的运行过程。 利用 BindingManager.as 和 Binding.as 代码进行调试不是轻而易举的事,因为你需要下载整
相关文档:
最近在开发过程中发现一个问题:Boolean类型的值无法在flex和java间传递,经过一段研究发现,问题出现在Boolean类型的getter和setter方法上。
按照javabean的规范,小布尔类型的getter是以is做前缀的,但是大布尔类型的getter就成了以get为前缀了(大布尔作为引用类型,已经被视为普通 ......
1.java
Java代码
package com;
public class LoginDemo {
public String validate(String username,String password){
&nb ......
flashbuilder中可以建立flex工程与actionscript工程.
flex工程内可以使用mxml是完成设计工作.
actionscript工程建立时默认只有:
playerglobal.swc
flex.swc
utilities.sec
playerglobal.swc
这几个类库.没有framework.swc,就无法使用Button等控件了.
解决方案是 actionscript工程中加入framework.swc.
路径是 x:/A ......
这两天看了公司老总演示的一个效果,热图分布情况,感觉很直观。国内地图上很少有这种表现方式的。
g了一下发现以下:发现flex下有 IBM ILOG Elixir 可以用,不过这要花钱。
https://www.adobe.com/cn/products/flex/ibmilogelixir/
还有一个Heat API,可以再googlemap上叠加热图。
http://www.heatmapapi.com/ , ......
用Flex4加载Flex3的组件时,发现了这个问题:
当用spark添加一个mx组件时不会有问题,但当这个mx组件中还有其他组件
例如<mx:HBox><mx:Canvas/></mx:HBox>被添加到<s:Group></s:Group>
(注:通过AS代码使用addElement()添加,而不是直接写到mxml中)
stage.frameRate会瞬间达到1000!
之 ......