2007年6月6日星期三
Flex Tip of the Day & FlexTips
現在出現了Flex Tip of the Day & FlexTips。
Flex Tip of the Day是個PersonalBlog,暫時只有一篇叫作inline styles not permitted on UITextField。而FlexTips創建者希望大家平常能把平常在Flex開發中的小點子整合在一起,作者已經貢獻出了一些。
個人的想法是這些東西好是好,但實施起來不知道有沒有頑強的生命力。我的做法是把flexcoders等組織的信件一起扔到Gmail中然后進行搜索,多快啊。
Now, Let's talk about Flex3/Moxie! - Part Ⅲ
Advanced DataGrid:
不是什么新鮮玩意,而且有偷去別人構思之嫌,這不是TreeGrid么?!所以最好還是取個Advanced TreeGrid的名字比較好服眾!
TreeGridLinkOne TreeGridLinkTwo
這早已經是Flex的構思及產物了,有什么區別么?在Adobe下的更快的編譯速度+編寫規約+Adobe人員制作?
新的玩意總要會帶著副產品的出現,下面就是由Adobe's Advanced DataGrid帶來的孩子們:
mx.collections.HierarchicalData;
mx.collections.Grouping;
mx.collections.GroupingCollection;
mx.collections.GroupingField;
mx.collections.HierarchicalCollectionView;
mx.collections.HierarchicalCollectionViewCursor;
mx.collections.ListCollectionView;
mx.collections.SummaryField;
mx.collections.SummaryObject;
mx.collections.SummaryRow;
Deep Linking:
一些某些人需要,某些人不需要的東西。這東西其實在Flex2已經可以完成部分的功能了。繼續帶來了Adobe的孩子們:
mx.events.BrowserChangeEvent;
mx.managers.IBrowserManager;
mx.managers.BrowserManager;
mx.utils.URLUtil;
Application.historyManagementEnabled
Resource Bundles and Runtime Localization:
暫時還是滿少接觸到的東西,properties是你會在工程目錄下找到的東西,你可以進行相關的配置,exactly like a Java-based properties file,比如你可以輕易的在RUNTIME用Resource Bundles對多語言的支持,最終引入到ResourceManager,Help里面倒是有蠻多的例子,也許是Flex3把load&Recompiled的速度提高了吧。
Flex Component Kit for Flash CS3:
恩,又繼續吸引了FLASH的愛好者們開發FLEX。
I wish I will be shocked tomorrow!
2007年6月5日星期二
Now, Let's talk about Flex3/Moxie! - Part Ⅱ
今天Ted的Flex Details繼續給我們展示Flex3/Moxie,其中有3個个人认为比较重要的部分
Compilation:
优化了MXML/COMPC/ASC Compilers,想升级一个版本,我想这东西应该是个必需品吧,但是到什么样的程度,我们拭目以待。
Flex Profiling:
一個So Smart的內存監視器,讀取一個Application來展示各部分的細節所占用的內存量,然后根据实际情况可以对代码进行优化。不過個人思考的是這東西是怎么工作的,在Ted的例子中,我們發現它是讀取一個swf文件,然后再出現Flex Profiling View,難道它能從二進制的swf中來反編譯出Application個細節部分的組成?希望我错了。這是我自己非常期待想知道的問題。
Multiple SDK Support:
這是我自己非常期待的東西,就像JAVA1.4到JAVA5.0切換那么簡單,而且對我受益匪淺。不得不說的是我現在的項目還是2.0,別的小組已經是2.0.1 Hotfix2,在用哪個編譯器的時候,這是一個非常之煩人的問題,我現在只能一個裝到Eclipse,一個單獨裝個Flex SDK,不知道大家在Flex3/Moxie之前有什么好的解決方法呢?
我越来越觉得Flex3/Moxie開始Adobe傾向化,就象Dreamweaver一样...Design/Dev...
有消息说明天Ted将会公布一些新的控件和AS支持SQL的情况。新的控件中包括了‘强大的’DataGrid,真令人期待啊。恩,不得不说的是现在的Flex2 DataGrid完全满足不了用户对它的需求,满足了需求,在性能发面确是Bull Shit!希望明天的DataGrid能给我一个全新的感觉。
RXNA
今天起我將正式加入RXNA,希望對RIA開發者包括自己有所幫助。
Now, Let's talk about Flex3/Moxie! - Part Ⅰ

自從Ted上周說要發布一些Flex3/Moxie的細節,我就在一直關注,今天終于讓我看到了傳說中的Flex3/Moxie哦!一直以來,個人總覺得一個好的FLEX高手并不一定能制造出一個好的作品,很大一部分原因是在給用戶豐富體驗的同時不能給客戶帶來視覺沖擊,所以一直曾考慮應該專門招一名美工設計師來完成最后的美化工作。Flex3/Moxie畢竟是出自設計世家Adobe的東西,Ted's Monday讓我們繼續看到了Better Design:
可以從圖片文件夾,SWC,SWF導入到Flex3/Moxie Project。今天你導了么?
Design View Zoom/Pan:
這東西能讓你放大版面,做更好的布局工作。今天你對齊了么?
Design Mode support for ItemRenderers:
顧名思義,Design Mode支持了List,HorizontalList,TileList,Tree,DataGrid等的itemRenderers,并支持靜態數據在上面的顯示。今天你愛騰了么?
Advanced Constraints:
mx:ConstraintRow & mx:ConstraintColumn將會是新的玩意,會讓東西布局可以再細分化。今天你還是瘋(分)的么?
CS3 Suite integration:
Flash CS3 Skinning
Illustrator CS3 Skinning
PhotoShop CS3 Skinning
Fireworks CS3 Skinning
FireWorks CS3 - Flex components & Save as MXML/CSS
Flash CS3 - Flex Component Kit (Container support coming)
Skin Importer - See Above
又是廣告?今天你看了么?
CSS Outline:
CSS大綱,一個Application下面有怎么樣的CSS,一個BUTTON下面有怎么樣的CSS,完全可以看到。今天你還要偷窺么?
CSS Design View:
除了CSS Outline,還是有這個CSS的Design View,要注意的是,這可是個狠角色哦,這樣的話就不用每次要跑Flex 2 Style Explorer調這些破玩意啦。今天你調戲過Flex了么?
2007年5月24日星期四
ActionScript3 Tip Of the Day Update!(Version 20070518)
Announce: senocular has the real copyWrite!
通过DataField来正确处理DataGrid的ColumnIndex的变化
由于客户需求的不确定,我们常常会修改DataGrid里面的内容,时而多一列时而少一列,因此它引发了DataGrid的ColumnIndex的变化。
当我们在AcitonScript代码中对columnIndex进行判断时,常常会忘记改变columnIndex从而引发bug。
<mx:DataGrid id="PersonInfoDG" dataProvider="{PersonInfo_ARRAY}">
<mx:columns>
<mx:Array>
<mx:DataGridColumn headerText="First Name" dataField="firstName"/>
<mx:DataGridColumn headerText="Last Name" dataField="lastName"/>
</mx:Array>
</mx:columns>
</mx:DataGrid>
sample.as
[Bindable]
private var PersonInfo_ARRAY:Array =
[{firstName:"aaa", lastName:"bbb"},
{firstName:"ccc", lastName:"ddd"}];
private function initListener():void {
PersonInfoDG.addEventListener(ListEvent.ITEM_DOUBLE_CLICK, doDoubleClick);
}
private function doDoubleClick(event:ListEvent):void {
if (event.rowIndex > 0) {
if(event.columnIndex == 1) {
Alert.show("It's Last Name Column!")
}
}
}
增加了Address字段
<mx:DataGrid creationComplete="initListener()" id="PersonInfoDG" dataProvider="{PersonInfo_ARRAY}"
doubleClickEnabled="true">
<mx:columns>
<mx:Array>
<mx:DataGridColumn headerText="First Name" dataField="firstName"/>
<mx:DataGridColumn headerText="Address" dataField="address"/>
<mx:DataGridColumn headerText="Last Name" dataField="lastName"/>
</mx:columns>
</mx:DataGrid>
sample.as
[Bindable]
private var PersonInfo_ARRAY:Array =
[{firstName:"aaa", lastName:"bbb", address:"AB Road"},
{firstName:"ccc", lastName:"ddd", address:"CD Road"}];
private function initListener():void {
PersonInfoDG.addEventListener(ListEvent.ITEM_DOUBLE_CLICK, doDoubleClick);
}
private function doDoubleClick(event:ListEvent):void {
if (event.rowIndex > 0) {
if(event.columnIndex == 1) {
Alert.show("It's Last Name Column!")//It's Wrong! It has change to 2
}
}
}
那我们怎么样才能今可能得减少这种错误呢?我们发现,在columnIndex在跟着不断变化的同时,我们所要表示的内容一般是不变的。是的,我们可以通过字段dataField来进行判断,而且不会有影响。
private function doDoubleClick(event:ListEvent):void {
if (event.rowIndex > 0) {
for(var i:Number; i < PersonInfoDG.columns.length; i++) {
if(PersonInfoDG.columns[i].dataField == "lastName" && i == event.rowIndex) {
Alert.show("It's Last Name Column!")//It's Right! :)Break;
}
}
}
}

