为了保障原创作者在本站发表文章的利益, 并维护本站原创的精神, 特声明: RIAShanghai对有以下任何情况之一的文章将不通知作者并直接进行快意删除:
- 非原创, 或者原创但一文多发;
- 各种形式的广告与吹擂;
- 不符合本站文章格式.
欢迎各位读者监督. 谢谢合作. 另: 作为Adobe正式的UG, 我们将把Adobe不定期分发的软件,书籍及各种纪念品赠送给发文活跃的作者, 共同进步.
He had anti shoe to settle for a one-under round of 71 but was pleased with his efforts. "I felt like I had control of the ball for most of the day, especially my trajectory," he said afterwards.
Without Welker, Edelman had another big MBT shoes discontinued game with six catches for 90 yards. He caught six passes in the playoff loss to Baltimore.
用Writer打印内容到console或者浏览器时,必须要考虑到flush。如果你用writer打印出很多内容,而程序结束时,writer如果没有被flush则用户完全看不到或者不会看到完整的信息。例如:
public static void main(String[] args) {
PrintWriter log = new PrintWriter(System.out);
log.println("Hello, Jack")
}
运行后,没有任何显示。这是因为"Hello, Jack"被buffer了,至少两种方法可以解决这个问题
Pattern name: Item Render
Motivation: 对于包含多Item的UI Component(如Tree, Table, DataGrid, etc) Item Containers来说,其行为大多固定,需要时常改变的是Item的显示。如果将显示实现放在这些item containers的class内,那么不仅这些classes的可重复利用性受到破坏,代码也难以管理。这时应该考虑将item的显示逻辑分离出来。
Approach: 将item显示逻辑独立出来放到item render class/function中。
期待已久的功能。实现起来不难 - 不外乎从混淆的log里面分析出原始及重新命名的类名,更新log4j.properties即可。
因是在build-obf.xml内实现的,故大部分build文件无需更改就可以享受此功能。注: 所有目标目录下的任何名为log4j.properties的文件将都会被更新。
以前我们为了解决ANT logging to file, 可以使用如下的命令在影响ANT console输出的情况下log到文件:
ant -logger ant.DefaultLoggerWithFileOutput -DANT_LOG_OUTPUT_FILE=C:/a/b.txt
这样实现了基本功能,但非常不方便,尤其在IDE里面我们喜欢一键运行而不是输如上的命令。现在新的方法是使用Task将log写到文件里:
We assume you are like us. Initially, our team had many doubts about Flex:
If you are a project manager or a team leader, you'll probably have the same set of doubts. We wish we could have someone to help us answer those questions. Sadly, back then we have no one to turn to as Flex was a new kid on the RIA programming block.
We walked bravely along the Flex way and we found answers to above questions. On this road, we also experienced thousands of wrong ways to do Flex projects too. We could have finished Flex projects much much earlier if there were decent Flex consulting services available. Now, you do not have to do flex projects in the hard way.
MySQL运算:
SELECT NULL != 1 => NULL (false)
SELECT NULL = 1 => NULL (false)
SELECT NULL IN ('A', 'B') => NULL (false)
SELECT NULL NOT IN ('A', 'B') => NULL (false)
当你书写如下SQL(返回所有t.attr不为1或者2的行) - When you write the below SQL:
SELECT * FROM table_ t WHERE t.attr NOT IN (1, 2)
很可能应该是 - Probably what you really mean is:
SELECT * FROM table_ t WHERE t.attr IS NULL OR t.attr NOT IN (1, 2)
这样表述的情况是:只要t.attr不是1,也不是2, 但t.attr值可以为NULL。
Flex Builder 的“Problems”view 展示了所有的Error及Warning,但下面两种Warning我个人认为是不应该warn的:
1. Warning: 1084: var 'x' will be scoped to the default namespace: X: internal. It will not be visible outside of this package
当你的Variable scope为(default)时,以上Warning会出现。按照AS3的语言参考,(default)是完全合法的scope.
本篇文章基于若干ADC的Flash Builder v4b2介绍文章及作者的实际试验。
目的:用于了解代码运行
功能:利用它,我们可以轻松了解某个函数被哪些函数调用。
在Flex中,为了获得较大的控制权,我们往往需要获得被保护的变量。举例来说,有一个TextArea被用来输出log。一般的情况下,每增加一行log, 我们直接将TextArea scroll到底部,所以最新的log信息一直可以被看到。然而有时从服务器返回的log有几百行至多,如果TextArea直接翻到底部,用户不得不向上翻(最重要的信息往往在前面)。我们的目标是每次log被加到TextArea,显示新加log信息的第一行。实现这个,我们必须使用TextArea.textField (protected) 或 TextArea.getTextField(internal, default)以获得行数信息。
在Flex/Flash Builder
中类已存在,也已经import,按Ctrl+Click也能直接点入这个类的源文件,但依然显示"Access of undefined property of ClassA" (假设此类名为ClassA).
造成这个错误的可能原因之一是package name与实际路径不符,如ClassA.as在src/com/test下,但类中“package com.test.a”. 一般在重新命名或移动packages时常有发生,只需更新类中"package ..."一行即可。
在使用DBCP数据库连接池时,如果遇到Exception “pool error Timeout waiting for idle object”,这意味着数据库连接泄露。解决这个问题的方法很简单,就是任何连接使用后,必须关闭它。示例代码:
我今天的工作之一是设计一个工具来进行两个数据库的同步,即从master数据库读取信息来更新slave。很明显这是一个ANT“任务”,写好的ANT script只有三十几行,很简洁。遇到的一个问题是导出的SQL文件无法通过ANT的<sql> task执行,执行到<sql>就停掉,没有错误汇报。解决方案是:
在使用ANT的<sql> task,需要指定keepformat=”true”,否则<sql>将画蛇添足对sql文本进行格式化,结果诸如‘--’之类的字符串将导致运行错误。
DFS(Depth-First Search)和BFS(Breadth-First Search)是两种用于访问图(graph)中节点最普遍的两种方法。在我的日常编程中,使用的graph的绝大部分都是树(tree). Tree是一种connected acyclic graph - 连通(即从一个节点一定有路径到其他任何节点)的无循环图. 本文所述内容仅限于tree, 不适用于graph.
UI Pattern: DataGrid常被用于显示一系列对象,用户感兴趣的可以双击对象进入浏览或者编辑
要实现它,DataGrid却有些tricky, 要监听的注意不是MouseEvent.DOUBLE_CLICK而是ListEvent.ITEM_DOUBLE_CLICK而且必须开启DataGrid.doubleClickEnabled. List也应是如此。示例代码:
var dg:DataGrid = ...; dg.doubleClickEnabled = true; dg.addEventListener(ListEvent.ITEM_DOUBLE_CLICK, onDGDoubleClick);
在上下文菜单里增加新的菜单项时,应该使用ContextMenu.customItem.push()而不是ContextMenu.addItem(),否则 Ant mxmlc 将报错说addItem未定义。
示例:
将原有的Flex project的SDK从3.2改到3.4后,如果你的代码足够多,那么这个问题你很可能会遇到,如下面是我的代码:
_selectionList = new List();
_selectionList.width = 360;
_selectionList.dataProvider = _selectionDataProvider;
_selectionList.selectedItem = _valueInput;
_selectionList.addEventListener(ListEvent.CHANGE, onListSelectionChange);