Sandy是一個日本人寫的 3D api, 提供一堆 AS2 class可輕易畫出多種3D模型跟簡單的動畫。
雖然目前還在 alpha 0.1 (意思是alpha中的alpha),但有些範例已經很不錯了。
-基本3D polygon:簡單的線條跟轉動,這應該是所有 3d engine裏最基本的入門功。
-3d sphere: 一隻貼圖在柱狀體上的鴨子,畫質有點慘,但這應該不難修掉。
-旋轉物體:這個非常有趣,貼圖後可360度旋轉,雖然動作有點慢畫質也不好,但基本模型與演算法出來後,可能的用途很多,有看過 Looking Glass嗎?呵呵呵,這個有空一定要玩一下。
下載example
btw, 最近 Flash Open Source界發生一些大事,有空要來寫一下 「Flash OSS的未來」。
| by admin
有趣的新聞
如果你直接執行 ASC.jar 這個檔案,會跑出下面的字
ActionScript 3.0 for AVM+
version 1.0 build b412
Copyright (c) 2003-2004 Macromedia, Inc.”
Copyright (c) 1998-2003 Mountain View Compiler Company”
Mountain View Compiler Company
看來是這家小小小公司的高手們幫忙寫了這支compiler,實力很不錯啊~
我想現在還會感覺有點慢應該要怪到eclipse這個大怪獸頭上,另外alpha階段還沒fine-tune完也是個原因。
| by admin

My blog is worth $5,080.86.

算算有接近二十萬,可以買42″ LCD 電視了…
| by admin

intro page
這本書實際上已經紅了滿長一陣子,尤其在中文翻譯出來後在台灣跟中國更是火到不行。
這幾年design pattern類的書大概看了不下十來本,當初看它封面設計的如此可愛,心想大概又是另一種 teach yourself xxxx in 10 minutes或 idiot’s guide to xxxx等級的入門書所以完全沒動力拿來看。
最近在 b6s 的強力推薦下終於弄了本來翻翻,結果一看之下才發現原來封面是騙人的,裏面的內容真是料多味美卡實在,尤其是作者很用心的在設計範例,再佐以紅酒醬汁,呃,我是說很多的插圖跟註解,透過大量重覆性的描述讓一個概念可以很生動的解釋清楚,這真是非常棒的寫作手法。
當時會想翻這本書是因為最近在用 flex 2寫 pop3 client, 結果在 socket 部份遇到一些困難,請教b6s長輩後才知這類型的問題可以用 State Pattern解決,所以就先從這章開始看。
看完後才真正覺得世界大不同,以往在 GoF的聖經裏,對於 state pattern的描述就是那短短三句話,最好一般人看完就能理解並應用 -_-,而這本書的例子則設計的非常好,同時應用 Delegate + State 來解決一個實際的問題,看完之後再把 GoF拿出來翻一遍,此時就覺得每段話都很有道理,就連裏面提到的 drawing program 切換 state 的例子也都豁然開朗。
(這裏的豁然開朗指的是:以前看完GoF只大略知道 state pattern可用在drawing tools,可是該如何實作那就是天知地知我不知了, 而看完 head first design pattern後卻是有十足的把握可以立即寫一個這樣的程式 – 實際上等寫完pop 3 後,我就打算用 flashcom重寫一次whiteboard 這個元件來驗証一下這個pattern – 這中間的差異可真是十萬八千里遠吶)
另外順者 State pattern翻下去也順便看了 Command Pattern,這也是一個「知道許久但其實沒怎麼在用」的pattern,可是實際上威力無窮,尤其在寫 app時一定會需要提供 undo 的功能,以往我都是用 memento pattern就解決了,但沒想到有更輕量級的手法。
書中 command pattern 的例子也挺有趣的,是以一個萬用remocon為例子,解釋如何將不同的功能包進command object 後透過同一個介面去執行,同時書中也說明了如果需要 undo時,可以加上一個 undo() 來處理個別指令的 undo事項。
所以簡單講只要將 command + memento 就可以應付大部份大型應用程式的 undo需求了,例如將一個個的 command object塞進 careTaker 裏的 stack,然後將來再依序取出即可。
總而言之,這本書實在是所有工程師的福音,尤其是那些還沒學過 pattern的初學者更該將此書當作入門的第一本教材,看完它,不但會對 pattern有完整的瞭解並打好穩定的基礎,更重要的是將來也有更多的本錢可以看其它深入的pattern書(那些比較硬,沒那麼多插畫,封面也不是清純少女的大部頭教科書)。
note: 寫完後跑去 amazon看了一下 sale rank, 結果很意外的居然總銷量只有幾百本,或許大家真的都被封面給騙走了吧…不過台灣買的到中文翻譯本,銷量應該會好點兒才是。
note2: 呃,如果你是socket programming高手,例如有處理 pop3, smtp, nntp 或 irc socket 的經驗,麻煩請與我聯絡,有幾個技術問題想請教
[但如果只是會用 JavaMail API或其它已包裝過的 socket API的話,那幫助可能不大, 我需要的是能在 byte-level 處理socket的能力]
| by admin
在這次的public alpha鐵三角中,已經介紹過 Flash Player, AS3兩項,接下來該看看 Flex代表的意義。
在過去一年中,大部份人聽到 Flex的反應都是: 白癡才會用這玩藝兒、貴的完全不知所云莫名其妙直接笑笑揮揮手不帶走一片雲彩轉身就閃人去。
但許多事情在 FB2出來後發生了根本性的改變。
首先,這次的 flex 2.0 release包含下列幾項:
1、Flex Builder 2.0
2、Flex Framework
3、Charting Component
我們一項項的看過。
*flex builder 2.0 (FB2)
如同大家所知,FB2是以 eclips 3.1為底改寫而來,或者應該說是 eclipse的一個外掛,因此它自然繼承了 eclipse的所有優點(完整的編輯功能、可擴充性…),而且也如同之前所料,它將原本 dreamweaver 的 design view整合進去,變成一個視窗寫 mxml code,另一個視窗設計form。
那採用 eclipse有什麼好處呢?很多啊~
例如eclipse 上一狗票的外掛都可以立刻拿來用,我裝好 FB2的第一天就順手裝了 SubClipse,這是一個 SVN 的 plugin,從此直接在 FB2就可同步程式碼,實在很快樂;其它如 Database Connector可以直接在 eclipse裏連線 mysql然後測試 sql也是很方便,不用再開一個 mysql control center 或 navicat之類的client。
此外更別提如果你用 MTASC的話,必然會裝 ASDT或 FDT(感謝該公司熱情免費提供了一份給我測試),這時就可與 FB2 並存,看心情切換到需要的 Editor, 如果要編複雜的 XML文件,也可以裝 Oxygen xml editor,這是一個比美 XML Spy的 xml 編輯工具,效果好到沒話說。
當然,如果這一切還沒辦法滿足你的編輯需求的話,最後一招是可以裝上MyEclipse後再裝FB2,這樣就可以同時享受 MyEclipse帶來的豐富功能,同時又能編輯mxml。
*Flex Framework
這是另一個重要的 milestone。
Flex Framework代表的意思是從此 flex不再需求server,只要有這個 framework就可以撰寫並編譯 swf程式,並且可以免費發佈,就跟用 Flash 8編譯是一樣的意義,唯一的不同在於因為這是一個 framework,因此自然可以享受許多額外的好處。
(好吧,有人留言說看完上面這段還是不懂,那試試換個角度這樣想:用 .net framework時,不是只要抓一份 .net sdk 回來,就可以自已用記事本寫C#,存好後用 sdk裏的compiler編譯,之後就會得到一支 exe嗎?同樣的,以後只要下載一份 flex framework, 然後用[記事本/UltraEdit/any other text editors you like....]編輯好 mxml並存檔,然後用 mxmlc.exe 這支 compiler編譯就可以得到一支 swf檔囉!在flash的世界裏,可以將 swf 看成等同於 .net 的 exe)
有那些呢?
-完整的底層服務: 我指的是像 double click, data binding與 app initialization等 house-cleaning routines都有人自動完成。
-豐富的 UI controls: flex的元件很讚是大家早就知道的是,而這次它變的更棒了。首先是完全用AS3重新改寫過,因此速度變快就是一定的事,在這之外則是多了一個 Rich Text Editor,功能完整而且非常robust,再配合原本就表現良好的 Container系元件,這使得 Flex Framework有者接近 Visual Studio 的表現。
另外,Flex Framework 也有 server端的配套措施,名稱叫 Enterprise Service,目前還沒release,但簡單講就是把 Jrun 跟 Flashcom(Flash media server)送做堆,同時提供 data(remoting) + audio + video的服務;根據更早之前的白皮書指出,應該還會俱備某種 Persistant Layer可自動做 OR Mapping的事,但這也是不是太稀奇的事,現在只要透過 VO把flash object傳回 server 並轉回 Java VO後,接者就可用 Hibernate來做 persist的工作,所以並不難啊~
在這些功能面的因素之外,FB2還有一個更令人心動的消息,它的售價將會低於三萬元,也就是說像我們這樣的開發商只要買一套,就可以用來做無數的專案,完全不會有 deploy license的困擾(更別提以前 per 2 cpu 40萬台幣的鳥事),因此這讓 FB2 真的成為一個非常值得考慮的開發工具。
對我而言,評估與選擇一個工具或方案時,必需要同時考量到許多層面,例如速度、功能完整性、未來發展性、客製化彈性等等,如果簡單的以 Flash 8 VS FB2來看的話,光FB2裏完善的元件就已經把 flash 打的要死,如果再加上 framework裏其它的底層功能與 eclipse方便的編輯環境,孰優孰劣已非常明顯不需多言。
這也是為何早在今年第二季時我們即已決定未來將會放在 Flex 這條線上的主要原因。
*charting component
呃 這個說實在沒怎麼在玩,從內附的範例來看其實效果普普,大概就是長那個樣子並提供那些功能,Chafic他們寫的 BLine charting components在某些層面上可能還勝過這組,不過看在它不要錢的份上,就別挑了吧。
當然一個值得觀察的重點是:charting component是用外掛的方式安裝進去,只要將 swc檔丟到資料夾內,然後再更新一下 config.xml,就可以加入這些元件,這代表者將來如果有 3rd party 廠商要為 Flex framework寫元件的話,也只要循同樣模式就可輕易達成,前景非常可期啊,至少我就已經想寫一兩組元件了。
edit: 另外FB2還多了一個 state 面板,這真是讚到不可思議的設計,這個 state面板是用來切換與控制程式進行中的狀態,在不同的狀態下顯示不同的介面元素,例如login時只顯示 login面板,其它東西都隱藏起來,而不同身份權限的人進到程式後,也可以用它來切換不同的操作畫面,彈性非常大,當初玩過後心中感覺是:這恐怕是 Movieclip之後最偉大的發明了…
偉大的地方在於:
1、舊時代的coder往往會用 timeline做為程式 state的區分,例如第1格是 login, 第5格是主畫面,第10格是xxxx畫面。這種 frame-based 的設計缺點非常多其中最大的麻煩就是安全性不佳。
2、在AS2.0時代,我們則是自已寫了framework來控制程式的 state的切換與卸載,主要就是透過 attachMovie()與 removeMovie()兩支 method,但可能包裝成 dispose()之類的高一階 API。
但flex2採用的 state 設計則是直接將這種問題完全解決,同時兼容 movieclip的彈性與程式流程的順暢,實在是很棒的設計。
不過alpha1中這個功能還有許多bug,例如有時切換state時會導致 IE當掉…所以使用上要小心。
| by admin