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 代码进行调试不是轻而易举的事,因为你需要下载整
相关文档:
原文地址:http://blog.163.com/to_yht/blog/static/1227257742009741359326/
当程序做完后,你是否还在为老套的flex组件默认效果发愁?是否还在为怎样设置自己的皮肤忙碌。那么这些可能是你需要的。
一 超酷皮肤主题推荐:
1. kingnarestyle:
下载地址:http://code.google.com/p/kingnarestyle/
2.Carbo ......
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 ......
之前一直没在意父容器和子容器各自的生成次序,知道在项目中遇到一种case:初始化界面时父容器初始化的内容由子容器先初始化再触发,但是父容器必须在初始化时就已经加上了对子容器的监控。这就造成一对矛盾,既想先生成子容器又想先生成父容器。
先自己写段代码测试一下生成顺序,父容器
<?xml version="1.0" ......