flash > 裏所有文章列表

Flex sdk4 – Gumbo 來了

In flex   July 15, 2008 - 10:12 am

詳細資料

入門簡介

稍微看了一下,目前著力最深的就是全新的 component architecture,看來是要玩標準一點的 MVC,主要就是多了 Group 這個新概念。

基本上,整份文件讀完感覺只有一個:這全部是在為 Thermo 鋪路啊 XD

原因:
為了要整合 design tools 產生的繪圖資料,例如吃進 fireworks 的格式,因此一定要有 tag 式的語法來標示這些向量曲線之類的資料,這步完成後,design + develop 兩邊就有一個介接的端口,剩下的就容易了

根據過去幾年的經驗,目前這組 API 還只是剛定稿階段,未來3-6個月內變化會最大,基本上在還沒 code freeze 前大概不用投入太多時間,不然每週一改可歡樂的很。

1 comment | by admin

Run c/c++ in flash, again !

In General, flex   July 8, 2008 - 3:50 pm

最近仍然持續極度忙錄中,但有趣的新消息卻仍然不斷冒出,抽空趕緊寫一下。

還記得去年 Max 2007 時 Adobe 的神人 Scott Petersen 展示了一個 flash 版的 Quake 遊戲嗎?那時他使用的技術,例如 LLVM 等,現在已經變的更成熟,而且離正式推出更近一步了。

根據 toolness.com 的報導,Scott Petersen 最近在 Mozilla 給了場演講,說明了 LLVM 與 Tamarin 的運作關係,以及如何讓 c/c++ 程式可以跑在 Tamarin 上,下面是基本的 steps

1. c -> LLVM instructions (using slightly modified version of llvm-gcc)

c/c++ code 透過 llvm-gcc (可能有動手腳稍微改過以符合 Tamarin 的需要) 編譯成標準的 LLVM instructions (IR)

2. LLVM instructions -> opcode (run by LLVM virtual machine in as3)

這些 llvm instructions 再經由一個用 actionscript 3 implement 的 virutal machine 處理成底層的 opcode

3. as3 -> bytecode -> machine code

而東西一旦變成 as3 剩下的就好處理了,它會利用 flash player 既有的功能去處理 bytecode 與 JIT machine code 轉換,然後就可以在每個人的 browser, desktop 與 mobile devices 上跑了。

由上面三個過程可知,真正的關鍵在於 #2 的 llvm virtual machine,它能將 llvm 轉換成 flash player 可吃的 opcode 進而達成『介接』的目地。

並且,據 Scott 指出,他同時也設計了一個特別的 byte array 來 directly mapping the system ram, 籍此降低模擬時的耗損並提升效率,這也是為何 Max 2007 上那個 Quake game 會嚇死人的快。

*這樣做的好處是?

當然任何理性的人都會接著問,這樣做有什麼好處呢?答案是好處多的很吶~

1、由於他的 toolchain 支援 llvm-gcc,因此理論上,任何 c-based 的語言都可以吃進去,這包含了php, ruby, perl, python 甚至 java 與 objective-c ,只要這個語言能用 c compiler 編譯,就可以編譯成 llvm-instruction 然後在 flash player 裏執行。

因此,過去一狗票現成的 library 都可以拿來重覆使用,不需使用 actionscript 重寫,也不需為此特別把某些工作丟回 server 上去跑。

也因此,才會出現有人想惡搞,把 WINE port 上 flash 然後讓它跑 windows 程式 (flash player running on windows with windows application inside ?) XD

2、另一個更隱誨的好處則是

這可能徹底的改變人們編寫 web application 的方式。

基本上大部份人都會承認,現行用 javascript/html/css 寫 web app 實在不是那麼的理想(well, I’m really trying to put it very nicely here…),如果能讓開發者直接用熟悉的語言(會 php 的請舉手?ruby 呢?)一路從 backend 寫到 frontend,這不是方便許多?

3、別忘了 Tamarin

Tamarin 是 Adobe 在 2006 時捐出去的一個 ECMAScript VM,目前由 Mozilla 基金會與Adobe 共同開發維護中,將來會用在 SpiderMonkey 中,並出現在下一版的 Firefox 4裏。

而 Tamarin 與 flash player 系出同門,這代表,將來 llvm 的東西也可以跑在所有支援 SpiderMonkey 的 browser 裏,至少 Firefox 就少不了,所以 nay-sayers against flash 不用急著跳著搖頭,你們也有的爽 :P

4、當然也別忘了 air

對我們而言,能在 browser 裏跑 php, ruby 等其實價值不大,因為它 code base 的積體可能是個問題,但對一支 desktop app 來說,這些就不會是太大的 concern,我們可以儘情的 mashup 任何需要的語言、技術來個大鍋炒,不用重新再造輪子,這才是最有價值的地方。

*缺點?

-Object model 不相容

現階段雖然可以讓 c/c++ 程式跑在 flash player 上,但它們與 actionscript 的 object model 卻完全不相容,因此要 inter-op 可能還有段路要走,但 Scott 說這件事已在進行中了。

oh, 如果你對 inter-op 不瞭解,可以想像一下 JRuby 與 Java 的運作關係,或是 Objective-C 與 C++ 的關係,就差不多是那樣。

-速度夠快嗎?

LLVM interpreter 是用 as3 寫的,等於是 interpreter (flash player) 再加上 interpreter,執行速度可能是個問題(也因此 Quake 展示時它背後用的 byte array 有動過手腳,直接可 map 到 system mem 減少了一些 simulation overhead)

*延伸閱讀

-名詞解釋部份

LLVM GCC

LLVM 是什麼?

Using LLVM, one can create a virtual machine for languages that require a code generator for a specific machine architecture, and optimizers independent from particular platforms or languages. The LLVM intermediate representation (IR) is language and architecture independent; it lies between a language-specific module and a code generator for a specific machine.

-Ryan Stewart 去年專訪 Scott 的文章(個人認為這篇裏面講的細節更多,也比較正確)

Ryan Stewart 專訪 Scott Pertersen

1 comment | by admin

Searchable flash content finally is here !

In flex   July 1, 2008 - 12:55 pm

Official release note

Ryan Stewart’s blog

Ted Patrick’s blog

如果你沒時間看完整份文件,只要搞懂下面這段就好:

What technology has Adobe contributed to this effort?

Adobe has provided Flash Player technology to Google and Yahoo! that allows their search spiders to navigate through a live SWF application as if they were virtual users. The Flash Player technology, optimized for search spiders, runs a SWF file similarly to how the file would run in Adobe Flash Player in the browser, yet it returns all of the text and links that occur at any state of the application back to the search spider, which then appears in search results to the end user.

簡單來說,就是 Adobe 提供了特殊版本的 flash player 給 yahoo, google (不過我一直以為自從 m$ 退散後這兩家已經等同於一家了啊 誤誤誤 XD),所以它們現在可以搜尋到 flash/swf 的內容了,即使是那些 動態下載的內容 (dynamic content) 也一樣 indexable.

不過 Adobe/Google/Yahoo 間的合作還不止如此,精彩的還在後頭哩…過陣子就會知道。

comments(8) | by admin

Adobe 第二季收入上昇 41%,共賺了 2 億多美金

In General, flex   June 20, 2008 - 10:22 am

Wired report

淨利約2.14億美金,較去年的 1.52億美金成長不少啊。

文章中指出獲利上升的兩個主要原因:

1、亞洲地區幾個主要國家盜版率下降所造成的銷售率持續上升

2、美元相對走軟因此賺來的國外貨幣匯兌後數字變大了

另外最近從各個方面聽來的消息,看來 Adobe 終於打算開始正視中國市場,這包括了推出繁/簡中文版的 flex builder,以及九月後的亞洲巡迴宣傳。

就辜且先把這些都當作是好消息吧。

Add comment | by admin

AIR for enterprise

In flex   June 14, 2008 - 7:19 am

RRW 原文

這篇文章中提到了 AIR 目前在企業中的應用,雖然都是簡單的例子,但每個都很實用,下面這句話尤其讚:

AIR let them “leverage the power of the desktop and the Web to immediately deliver customized desktop notifications that will keep our clients well-informed and empowered while they carry out their daily activities.”

比較有趣的是日本的 Sharp 也已經採用了,很進步吶…

Add comment | by admin

Next Posts Previous Posts

mobile phone