首页 | 网页设计 | w3c标准 | flash动画 | 平面设计 | 经典文章 | 特约专题 | 资源下载 | 健康频道 | 重庆品牌网站 | 留言簿 | 
技术文章  资源下载 经典素材  社区论坛
   
 您现在的位置: vi设计在线 >> 经典文章 >> 平面设计 >> 设计理念 >> [专题]Flash MX 2004专题 >> 正文  
  FLASH AS3 的一些改变         
[ 作者:佚名    转贴自:本站原创    点击数:1812    更新时间:2007/2/1    文章录入:QQ392398985

减小字体 增大字体

AS3除了带来全新的DOM外,还有就是事件模型(Event Model)
在AS3以前,处理事件的方式有好几种,如

第一种
btn.onRelease = function(){
}

第二种.
function someListener(){
}
Mouse.addListener(someListener);

第三种(使用V2组件时)
btn.addEventListener("click",fanflashFun)

这些不一样的事件模式实在令人十分反感,没有一个标准.不过,从AS3开始,flash的世界将只有一种事件模式,那就是第三种V2组件使用的事件模式,而且为了惯彻这种设计理念,AS Class的整个框架都做了大改变,我们可以从下面的Class 命名空间看出来.

Object
|
+--flash.events.EventDispatcher
|
+--flash.display.DisplayObject
|
+--flash.display.InteractiveObject
|
+--flash.display.DisplayObjectContainer
|
+--flash.display.Sprite
|
+--flash.display.MovieClip

在这架构的最上层是Object(哈哈,这表示以后你不知道一个变量该为什么类型时,仍然有这个万物之主当替身),下一个就是EeventDispatcher,这表示flash里面几乎所有对象都有了dispatchEvent的能力和用addEventListener()来侦听事件.


這也是為何在 flash.events.* 裏面新增了快一百多種event type 與 event class,真可說是處處是event、何處不廣播啊~

既然放了這張圖,可以順便看一下這顆樹的前面幾層,前文中提到的 Display Object與 DisplayObjectContanier都在很前面的位置,因此它們的重要性就不言可喻,此外InteractiveObject也是個重要的東西,它負責一切 Mouse, Keyboard、IME等裝置的動作偵測與廣播,從它所在的位置就可看出這次mm真的是很用心在重新設計整個架構。

AS3其它幾個重大的改變快速整理如下:

*runtime type checking + JIT compiled bytecode:

AS2之前flash只有 compiler time check, 因此許多runtime做的 type casting如果發生錯誤是沒辦法被抓出來的,只能靠自已一次次的 debug並trace每個物件來瞭解程式執行時記憶體的狀態,但現在加入了 runtime type checking後事情就變的很不一樣。

每次在 eclipse裏debug 時,只要一出現 casting error,eclipse會立刻跳到那一段並說明那裏錯誤,我故意試了幾個轉手casting的dirty trick想騙過它結果沒一個成功。

至於JIT的好處主要是在 byte code 與 native code之間的轉換,前者有體積小、可攜性高與安全的優點,但是執行效率慢(非常慢,看看JVM 1.1時的表現即知,或拿 FP7 與 FP8.5比較看看也可以),後者最主要的優點就是「快」,快到像 C++一樣的神速,這次 FP8.5全面採用 JIT bytecode後,執行效率的進步已經快到讓人驚訝(一般常見的測速結果都有 10x - 15x左右的差距)。

*32k 魔咒退卻:

以往一個class最大只能有32k, 這讓許多人得不停的把原本好好的一支class給分裂出去,才能降到 32k以下,而AS3則一口氣把這個limit拉高到 8mb,yes, 這應該是一個你永遠也沒辦法達到的上限才對,如果你能達到,代表你該把 design pattern的書拿出來再好好k一遍 Facade 跟 delegate 這兩章....(呃 Abstract Factory 跟 Command其實也要看一下)

*binary socket:

這是一個非常有趣的功能,FP8.5可以直接透過socket與各種socket server連線,最常見的socket 應用就是 email, 例如可以用 flash 寫一個 native的 pop3/smtp mail client,或是夠熱血的話可以連 NNTP, IMAP, IRC, SSH等各種應用都寫起來,目前我正在試者寫一個 pop3 client,直接透過 port 110 跟 pop3 server交談並操作,雖然對 socket programming還不是很熟悉,但仍然覺得很有趣啊~

另外伴隨 binary socket而來的就是 byteArray,這個array可以儲存 binary的資料,一般是透過socket傳回來的資料,但有趣的是它提供了一個 zlib壓縮功能,只要用:

Actionscript:

ByteArray.compress();
就可以使用FP內建的 zlib 將資料壓縮,然後透過 socket傳出去,更棒的是,還記得 Flash 8裏最引人注目的 Image API嗎?現在只要透過 ByteArray.readXXX()的一系列操作,就可以將Image Data讀入 ByteArray, 然後壓縮後傳回 server,這不正是許多人夢眛以求的圖片/video上傳功能嗎?(ticore你不用再試 lzw 跟 php壓縮了,開始用 byteArray + socket才是王道啊...)

*mx.collection.*:

這個 package裏提供了兩個重要的資料結構,一個是 ICollectionView,另一個是 IList,它們將是未來AS3裏最主流的兩種資料結構(當然 Array的重要性仍然是排第一的啦),而在這裏面最重要的實作就是 ArrayCollection,簡單來講,它就是 RecordSet的繼任人選,對使用 flash remoting的人來說,recordset的重要性與必要性應該不用再解釋吧?現在既然AS3已把 recordset完全拿掉而且也不會再支援,應該是開始學ArrayCollection的時後囉~

*AMF3:

AMF(Action Media Format)是flash remoting, flashcom, local connection三者共用的 binary format,主要用來傳遞native flash object 並提供高度壓縮與自動編/解碼的功能,之前AS2使用的現在統稱為 AMF0,而AMF3自然就是專給AS3使用。

它主要的改良是在運作模式與編碼方式上,變的更有效率而且更聰明,因此可以大幅減少redundant data,這代表者傳輸速度會更快,同時應用範圍也會更廣,而且種種跡象顯示mm似乎有開放這個規格的傾向(例如在手冊中就提到 binary socket 的用途之一是透過它傳遞AMF object)。

但由於 FP8.5還在alpha階段,因此 remoting adptor這段只能靠最原始的 NetConnection自已去手動製作,當初為了成功連回 AMFPHP,可是廢了好大一翻功夫把整個 NetService, Service class都翻完才搞定,這真是回味無窮的經驗吶 -_-"

*e4x:

好吧,這個實在已經是舊聞中的舊聞了,AS3正式支援 ECMAScript For XML,you can dot down the xml document, period.

不過目前E4X 真的還在alpha的階段,執行效率只能用慘不忍睹來形容,比自已寫的 XPath還要慢,所以現在還不用期待太深。


http://fanflash.cn/trackback.asp?tbID=44

 上一篇文章: 迪斯尼的动画规律教程
 下一篇文章: FLASH的全屏技术
发表评论】【告诉好友】【打印此文】【关闭窗口


技术文章  资源下载
经典素材  社区论坛
 中大型美容美发店老…[1060]
 重庆多达学习俄语培…[2288]
 重庆恒祥广告有限公…[1990]
 重庆市南方阻燃电线…[2401]
 重庆舞美灯光音响有…[3144]
 重庆德鼎滤油机有限…[1908]
 重庆民生建材有限公…[2349]
 重庆集元科技有限公…[4128]
 重庆倍润商贸有限公…[2015]
 重庆腾达展览有限公…[3081]
 帝一网络创始人宣…--[3177]
 重庆vi设计在线祝…--[2739]
 重庆帝一网络书生…--[2854]
 馋嘴鸭的起伏和经…--[2999]
 机器感觉“卡”的…--[2929]
 ActionScript3打造…--[5756]
 在ASP文件中读取H…--[7238]
 vi设计经典案例--[63824]
 帅到掉渣-爆笑版勇…--[7065]
 一个女孩写的经典…--[6826]
没有相关文章
 (只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    没有任何评论
设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 重庆网站建设 | 
版权所有: vi设计在线  © 2005-2018 网站备案序号:渝ICP备06003824号
技术支持:帝一网络(重庆网站建设专家)