为了保障原创作者在本站发表文章的利益, 并维护本站原创的精神, 特声明: RIAShanghai对有以下任何情况之一的文章将不通知作者并直接进行快意删除:
- 非原创, 或者原创但一文多发;
- 各种形式的广告与吹擂;
- 不符合本站文章格式.
欢迎各位读者监督. 谢谢合作. 另: 作为Adobe正式的UG, 我们将把Adobe不定期分发的软件,书籍及各种纪念品赠送给发文活跃的作者, 共同进步.
本篇文章基于若干ADC的Flash Builder v4b2介绍文章及作者的实际试验。
目的:用于了解代码运行
功能:利用它,我们可以轻松了解某个函数被哪些函数调用。
用法:如下图所示,ListBase.itemRenderer()被ListBase.addToFreeItemRenderers, DataGridBase.createColumnItemRenderer, List.createItemRenderer等所调用。假如我们想了解ListBase.addToFreeItemRenderers又是在哪里被调用,点击它前面的加号即可,依次类推。
Call Hierarchy 不是Flex Builder的独创,在Eclipse的Java编辑器中,选中一个method,按Ctrl + Alt + H也是打开Call Hierarchy. Visual Studio 2010 也开始支持。
根据Adobe提供的各方资料,Flex Builder 4对Vector提供全面支持,包括IDE里面的code assistance及性能提升。Vector就是一种typed Array,也就是说Vector里面的所有元素必须是同种类型,这样的限制大大减少了编程的混乱,正如Java后来加上的generic。理论上来说,Vector性能也应该比Array高,然而我的测试显示却是Array更胜一筹:[Flex SDK v3.4; Flash Player v10]
测试代码:
public static const CYCLES:int = 1000000;
private function testvec():void {
var vec:Vector. = new Vector.();
var array:Array = new Array();
// initialize
for(var i:int = 0; i < CYCLES; i++) {
var s:String = StringUtils.randomUpperCasesAndDigitsString(5);
vec[i] = s;
array[i] = s;
}
trace("Cycles: " + CYCLES);
// performance testing.
var startTime:int = getTimer();
var stringsStartWithA_vec:int = 0;
for(var i:int = 0; i < vec.length; i++) {
var s:String = vec[i];
if(s.charAt(0) == "A") {
stringsStartWithA_vec++;
}
}
trace("[Vector] Strings start with A: " + stringsStartWithA_vec + ", time taken: " + (getTimer() - startTime) + "ms");
var stringsStartWithA_array:int = 0;
startTime = getTimer();
for(var i:int = 0; i < array.length; i++) {
var s:String = array[i];
if(s.charAt(0) == "A") {
stringsStartWithA_array++;
}
}
trace("[Array] Strings start with A: " + stringsStartWithA_array + ", time taken: " + (getTimer() - startTime) + "ms");
}
与Java不同,Flash Builder 一次只能为一个variable生成,很繁琐,鸡肋。
可以修正整个文件或者选中部分。不建议修正整个文件,建议谨慎修正部分选中代码。注:粘贴代码时,Correct Indentation可能处理对被粘贴部分。
type "DGC", 然后按Ctrl + Space。如果type "dgr"再按Ctrl+Space则不工作。
在Debug时候如果需要跳过多行,可以将游标移到目标行,Ctrl + R即可. 给breakpoint设置条件,如i == 500时才trigger breakpoint来debug第500个循环。
其他各项显而易见或者直接使用的功能一概略过。