網站要『用動畫讓網站整個動起來』漂亮、有趣、讓訪客忍不住要點閱! 最新推出:網站動畫製作秘技傳授 +(技術諮詢) 讓你快速學成! 進入HTML5的時代Flash動畫技術已經走入歷史! 如何在自適應網頁網站(RWD)架構下『用動畫讓網站整個動起來』是必學的秘技! 傳授 jQuery 廣告看板(3D 轉場.多版面輪播) 『自己製作 wordpress 動畫看板外掛程式』的獨家秘技! 網站登入頁面藉助『動畫助手』與『吸睛看板』收集潛在客戶名單的秘訣 讓您網站能擁有流量與訂單! 傳授如何將動畫短片轉成GIF動畫,讓整個網站更有有趣! (無師不一定會自通!有拜師當然就一定會通) 提供 JavaScript 廣告模版,讓你快速套用自己的廣告,並快速發佈於網站上! 教導藉助『網頁編輯器』強大模組功能,不需記住一大堆語法(快速動態展示圖片輪播特效) 傳授『網頁廣告看板設計軟體』套用模版,不是美工出身也能輕鬆搞定! 傳授秘技、直接有效!(精準、快速、無學不會的擔憂....)

Flash Action Script

Flash Action Script  語法
Flash 中的Action Script 即我們常說的AS,是Flash的腳本語系,面向對象的。
作用是給動畫加入互動性,比如:可以點選動畫中的按鈕,然後跳轉到動畫的不同部分繼續播放;可以搬移動畫中的對象;可以在表單中輸入訊息等等,這些都是Flash Action Script的運用。

從2005年到2010年,Adobe 的推出的Flex 項目,預示基於Flash Player的Action Script開發時代到來,深刻的記得剛出來的Flex元件還是基於V2元件,所謂的加強版吧,運行於Flash Player 8 當然是AS2.0,緊接著推出Flash Player 8.5,開始籌備部署Action Script 3.0了,到了現在已經是Flash Player 10了。

Flex 項目在AS3程式中並不是很常見,因為有個致命原因 ——  「編譯出來的檔案太大,不方便分發和部署」。這些都是經常被人詬病的,不過倒是很適合開發企業網內定的OA系統。呵呵,在說笑了~

偶然試用了一下最新的Flash Builder 和自帶Flex 4 框架。發現相比上一版本有了不錯的改善,或許真的會在2010年流行起來。

贅述一下RSL技術簡介,瞭解的同學可以略過這塊藍色區功能變數,Adobe提供的Flex 框架RSL檔案為SWZ格式,其實就是一種帶有簽名的SWF,可以被Flash Player加載後存放在特定的使用者目錄存儲,後續發現需要同樣版本的SWZ,可以從硬碟上讀取,無需網路加載。

這個也就是說當Flex 4項目在網路多起來的時候,基本不用考慮項目在網路因素上的延時。

分析細節原因如下:

  • Flex 4框架RSL檔案由Adobe的CDN來進行全球分發。

這一點可以讓最終部署時不要為了諾大的框架檔案以及帶來的巨大網路流量而發愁,這部分費用由Adobe來承擔。

  • 由於上一點,開發的項目無極端情況,完全可以使用RSL進行執行檔和Flex框架檔案分離。

我嘗試Release了一個空的Flex 4的應用程式,位元組量為58.1K,也就是說如果你使用Flex 4框架進行開發,在使用Flex 4全新框架高效開發前提下,你的發佈出的項目swf至少在58.1K以上。據我對Flex 3的瞭解,這58.1K中包括了preloader、舞檯布局、以及RSL加載等必要的類檔案。

有待探索的是,這裡如果使用存AS來編寫一個AppLoader,來加載使用Adobe放置的RSL檔案,應該可以使得應用程式變得非常的小,應為除去Flex 4框架檔案,剩下的就只有邏輯代碼了

在Flash動畫製作中,常會聽到(Flash Action Script)一詞
以下是:Flash Action Script 的相關說明:

ActionScript是 Macromedia(現已被Adobe收購)為其Flash產品開發的
最初是一種簡單的腳本語系,現在最新版本3.0
是一種完全的面向對象的寫程式語系,功能強大,類庫豐富,語法類似JavaScript
多用於Flash互動性、娛樂性、實用性開發,網頁製作和RIA應用程式開發。

Flash Action Script定義:
運用在flash上的腳本語系。
ActionScript開發工具

ActionScript開發工具:
Flash Action Script使用:
ActionScript 動作腳本是遵循ECMAscript第四版 的Adobe Flash Player運行時環境的寫程式語系。它在 Flash 內容和應用程式中實現互動性、資料處理、以及其他功能。
* ActionScript 是由 Flash Player 地方gtr和中的 ActionScript虛擬機(AVM)來執行。
* ActionScript代碼通常被編譯成「位元組碼格式」。
* ActionScript 的主要 IDE 是Adobe公司的 Flash Builder,最新版本 4.7。
* ActionScript CS3(2007)後為更新為ActionScript 3,語系的系統結構完全改變,支援即時編譯,語系功能增強速度。

Flash Action Script發展:
從macromedia大刀闊斧對As1.0進行改革到AS2.0,這一段過程看上去還算長一些,從flashmx到flash mx2004到flash 7.2再到flash8. 它們的核心actionscript都是as2.0.在flash8剛剛發佈不長時間,macromedia又緊羅密鼓的推出了flash9預覽版,大家都已經知道了Adobe發佈的預覽版可以對AS3.0進行編譯,而As3.0經由測試它的速度可以說要比之前的as2.0快10倍.拿著as3.0與As2.0相對照,雖然有些東西看著面熟,但它看上去就像是重寫的一種新語系一樣.還有隨之推出的adobe的Flex 2.0 builder. Flex sdk.讓許多人一時不知所措
·Flash Player2:第一個支援腳本的版本,內含控制時間軸的gotoAndPlay, gotoAndStop, nextFrame和nextScene等動作。
· Flash Player 3:增強了載入外部SWF檔案的基本腳本支援(loadMovie)。
· Flash Player 4:第一個完全實現腳本功能(稱為動作)的播放器。這些腳本擁有簡練的語法和對迴圈,條件,變量和其它基本語系結構的支援。
· Flash Player 5:第一個擁有真正意義上的ActionScript的版本。依據ECMAScript並採用基於原型寫程式,並容許完全的 過程式寫程式和面向物件寫程式。
· Flash Player 6:增加了事件處理模型,並且支援switch。
· Flash Player 7:Flash Player 7 提供一些新特性如支援CSS顯示文字和增強顯示效果。 Macromedia Flash編譯器和Flash Player 7同時支援基於ECMAScript 4 Netscape Proposal的類寫程式語系ActionScript 2.0。不過ActionScript 2.0能交叉編譯成ActionScript 1.0的位元組碼,因此它能運行於Flash Player 6。
· Flash Player 8:增加用於運行時影像資料控制和檔案上傳的新類庫及APIs,ActionScript 2.0功能更為完善。
· Flash Player 8.5(計劃於2006春發佈release版本,currently in public beta):增加ActionScript 3.0和一個稱為AVM2(ActionScript Virtual Machine 2)新的虛擬機,它可以與前版本AVM1共存以便支援舊內容。增強效能是該版本的主要目的。
· Flash Player 9 2007發表,這是adobe收購Macromedia後的第一個版本,並且也是Mac OS X上第一個Universal版本的Flash Player。
· Flash Player 10

Flash Action Script基本記法:
ActionScript 2.0
下面列印Hello World。值得注意的是這只能在整合環境下執行,因為trace函式只有支援整合環境。
trace("Hello world!");
下面代碼利用onMouseMove事件當滑鼠搬移時輸出現行滑鼠位置。同樣的這只有在整合環境下執行。
onMouseMove = function () {
trace("X: "+_root._xmouse);
trace("Y: "+_root._ymouse);
};
這個較先進的範例創造一個內含數字與字串的陣列,並利用原形函式(prototype function)與函式遞歸給變量名num指定一個數,給變量str指定一個字串。然後,利用MovieClip應用程式介面,文字區功能變數被顯示在螢幕上,文字區功能變數裡頭寫入了變量值。
var my_Array:Array = new Array("Hello", "ActionScript", 3, 7, 11, "Flash");
Array.prototype.pickNumber = function():Number {
var rand:Number = random(this.length);
return (typeof (this[rand]) == "number") ? this[rand] : this.pickNumber();
};
Array.prototype.pickString = function():String {
var rand:Number = random(this.length);
return (typeof (this[rand]) == "string") ? this[rand] : this.pickString();
};
var num:Number = my_Array.pickNumber();
var str:String = my_Array.pickString();
_root.createTextField("txt", 1, 10, 10, 530, 390);
txt.text = "Array = "+my_Array+" Random Number = "+num+" Random String = "+str;

ActionScript 3.0
下面先進的Hello World程式需要在Flex 2.0公開Alpha測試版整合環境中編譯。
package {
import flash.text.TextField;
import flash.display.MovieClip;
import flash.filters.DropShadowFilter;
public class HelloWorld extends MovieClip {
public function HelloWorld() {
var shad:DropShadowFilter = new DropShadowFilter(2, 45, 0x000000, 25, 3, 3, 2, 2);
var txt:TextField = new TextField();
txt.textColor = 0xFFFFFF;
txt.filters = [shad];
txt.width = 120;
txt.x = Math.random()*300;
txt.y = Math.random()*300;
txt.selectable = false;
txt.text = "Hello World! ["+Math.round(txt.x)+","+Math.round(txt.y)+"]";
addChild(txt);
}
}
}
//—–ActionScript3.0—————– //as3.0最重要的概念就是在效能方面的增進,平時所加入的任何事件都可以被監聽或從記憶體中移除 //以下例子就是監聽與移除記憶體佔用,這是as3.0最重要的基礎概念
bt1.addEventListener(MouseEvent.CLICK,bt1_click);
function bt1_click(e:MouseEvent):void{ //觸發的事件內容; }
//該按紐監聽不需要時則remove掉,增加效能 bt1.removeEventListener(MouseEvent.CLICK,bt1_click);

——————————————————————————–
【文章標題】: Flash動畫製作(Flash Action Script)
【文章作者】: Flash 動畫製作教學密訓基地
【作者信箱】: ster168ster@gmail.com
【作者首頁】: http://por.tw/flash/
【Flash 動畫製作教學課程】: http://por.tw/flash/new-E_learning/index.php
【基地主機】: http://goto1688.com/flash/
【版權聲明】: (原創)Flash 動畫製作教學密訓基地,轉載必須保留完整標頭。刪除者依法追究!
——————————————————————————–
Flash Action Script關聯術語:
1.Actions (動作):就是程式語句,它是actionscript腳本語系的靈魂和核心.
2.Events (事件):簡單的說,要執行某一個動作,必須提供一定的條件,如需要某一個事件對該動作進行的一種觸發,那麼這個觸發功能的部分就是actionscript中的事件.
3.Class (類):是一系列相互之間有聯繫的資料的集合,用來定義新的對象類型.
4.Constructor (構造器):用於定義類的屬性和方法的函數.
5.Expressions (表達式):語句中能夠產生一個值的任一部分.
6.Function.(函數):指可以被傳誦參數並能返回值的以及可重複使用的代碼塊.
7.Identifiers (標示符):用於識別某個變量,屬性,對象,函數或方法的名稱.
8.Instances (案例):案例是屬於某個類的對象,一個類的每一個案例都包括類的所有屬性和方法.
9.Variable (變量):變量是儲存任意資料類型的值的標示符.
10. Instancenames (案例名):是在腳本中指向影片剪輯案例的唯一名字.
11.Methods (方法):是指被指派給某一個對象的函數,一個函數被配置後,它可以作為這個對象的方法被呼叫.
12.Objects (物件):就是屬性的集合.每個對象都有自己的名字和值,通過對象可以自由訪問某一個類型的資訊.
13.Property (特性):物件具有的獨特屬性.
Flash使用ActionScript給動畫加入互動性。在簡單動畫中,Flash按順序播放動畫中的場景和幀,而在互動動畫中,使用者可以使用鍵盤或滑鼠與動畫互動。例如,可以點選動畫中的按鈕,然後跳轉到動畫的不同部分繼續播放;可以搬移動畫中的對象;可以在表單中輸入資訊等等。使用ActionScript可以控制Flash動畫中的對象,建立導航元素和互動元素,延伸Flash創作互動動畫和網路應用的能力。

——————————————————————————–
【Flash 動畫製作】你在摸索如何製作 Flash 動畫及發佈到網站嗎?有【技術顧問服務】可諮詢嗎?
當問題無法解決你要發很多時間處理(或許永遠找出答案)那就是自己摸索 Flash 動畫製作痛苦的開始!
購買【Flash動畫製作教學】DVD課程,就可獲得【Flash 動畫製作】技術【顧問諮詢服務】!

在Flash動畫製作中 Action Script 3.0 是一種強大的面向物件寫程式語系
Action Script標誌著 Flash Player Runtime 演化過程中的一個重要階段。

設計 ActionScript 3.0 的意圖是建立一種適合快速地構建效果豐富的網際網路應用程式的語系,這種應用程式已經成為 Web 體驗的重要部分。

ActionScript 3.0的歷史:
ActionScript 是一種基於 ECMAScript 的寫程式語系,用來編寫 Adobe Flash 電影和應用程式。
ActionScript 1.0 最初隨 Flash 5 一起發佈,這是第一個完全可寫程式的版本。
Flash 6 增加了幾個內建函數,容許通過程式更好地控制動畫元素。
在 Flash 7 中引入了 ActionScript 2.0,這是一種強類型的語系,支援基於類的寫程式特性,比如繼承、介面和嚴格的資料類型。
Flash 8 進一步延伸了 ActionScript 2,加入了新的類庫以及用於在運行時控制點陣圖資料和檔案上傳的 API。
Flash Player 中內建的 ActionScript Virtual Machine(AVM1)執行 ActionScript。通過使用新的虛擬機ActionScript Virtual Machine(AVM2)
Flash 9(附帶 ActionScript 3)大大提高了效能。

ActionScript 3.0 簡介:

ActionScript 的老版本(ActionScript 1.0 和 2.0)提供了建立效果豐富的 Web應用程式所需的功能和彈性。ActionScript 3 現在為基於 Web 的應用程式提供了更多的可能性。它進一步增強了這種語系,提供了出色的效能,簡化了開發的過程,因此更適合高度複雜的 Web應用程式和大資料集。ActionScript 3 可以為以 Flash Player 為目的的內容和應用程式提供高效能和開發效率。
ActionScript 3 符合 ECMAScript Language Specification 第三版。它還內含基於 ECMAScript Edition 4 的功能,比如類、包和名稱空間;可選的靜態類型;生成器和迭代器;以及非結構化賦值(destructuring assignments)。隨著 Web應用程式項目需求的增長,也要求 ActionScript 引擎有重大的突破。ActionScript 3 引入了一個新的高度改善的 ActionScript Virtual Machine(AVM2),與 AVM1 相比,AVM2 的效能有了顯著的提高。這使 ActionScript 3 代碼的執行速度幾乎比以前的 ActionScript 代碼快了 10 倍。Flash Player 9 中內含 AVM2(ActionScript 3.0 的腳本語係引擎),設計它的目的是提供網際網路應用程式開發人員所需的效能和特性。為了向後相容現有的內容,Flash Player 將繼續支援 AVM1。

能夠利用 ActionScript 3 的產品:
有許多產品都生成以 Flash Player Runtime 為目的的內容和應用程式,內含 YouTube、Flickr、SWiSH 和 ScreenTime。這些產品能夠利用 ActionScript 在自己的輸出中加入互動和行為。在 Adobe 產品系列中,專業設計人員可以在幾種工具和伺服器中使用 ActionScript,比如 Flash、Flex 和 Flash Media Server,從而為 Flash Player Runtime 建立內容和應用程式。Flex 產品系列(內含基於 Eclipse 的新的 Flex Builder 2 IDE)是第一個能夠使用 ActionScript 3.0 的新功能的產品系列。

ActionScript 3.0概述:
從 ActionScript 3 的一般特性開始,我將討論一下目的、語系特性和 Flash Player API 特性。還要討論 ActionScript 3 中的新特性和不太為人所知的特性。在 2006 年 11 月 7 日,在舊金山召開的 WEB 2.0 會議上,Adobe Systems 宣佈將 ActionScript Virtual Machine 的原始碼捐獻給 Mozilla Foundation。Mozilla 啟動了一個新的開放源程式碼項目 Tamarin,其目的是促進這種建立 Web應用程式的標準化方法的開發。
ActionScript 3 有兩類特性:語系特性和 Flash Player API 特性。語系特性基本上是在 ActionScript 2 之上構建的,但是還有一些效能和功能方面的改進,內含:
許多運行時異常,用來改進常見的錯誤處理和除錯。這些運行時異常會顯示堆疊追蹤,可以說明開發人員輕鬆地找到錯誤的根源。以前的 ActionScript 版本會悄悄地掩蓋錯誤,以避免在 Flash 中出現錯誤訊息對話框。這在開發期間會造成困難,因為開發人員不瞭解可能出現的錯誤,就無法開發出好產品。
在運行時存儲類型細節,用來進行檢查並保護系統,因此 ActionScript 3 是強類型的。這還有助於減少記憶體使用量,因為類型資訊以本機機器表示法表示變量。
ActionScript 3 完全符合 ECMAScript 第四版規範,這可以簡化 XML 解析。

ActionScript 3 的 Flash Player API 特性內含:
DOM3 事件模型提供了生成和處理事件訊息的標準方法,這有助於在物件之間進行更好的通信和互動。
新的 Loader 類提供了載入 Shockwave Flash 和圖像的單一機制,並提供訪問關於被載入內容的詳細資訊的方法。URLLoader 類提供了在資料驅動應用程式中載入文字和二進位資料的單獨機制。
Socket 類提供了以任何格式對伺服器套接字讀寫二進位資料的方法。
ActionScript 3.0 內含一個 flash.text 包,它提供與文字關聯的所有 API。

ActionScript 3.0其他新功能:
Loader.loadBytes()
這個方法可以從二進位資料直接建立顯示清單中的條目。例如,在我的電子信件客戶機上,如果從 Pop3 伺服器上下載的一個電子信件內含附件,就檢查附件的 mime-type。如果這種類型是播放器支援的,那麼就可以將附件的二進位原始碼讀入 ByteArray,並在 Flash Player 中顯示這個附件。這意味著我的電子信件客戶機可以顯示 PNG、JPEG、GIF 和 SWF 附件。
Sound.computeSpectrum()
這個方法分析播放的所有音效並返回一個 ByteArray,其中內含 512 個歸一化的值(-1 到 1),可以使用它們顯示音效波形(256 個值用於左聲道,256 個值用於右聲道)。可以使用這些值為 Media Players 建立 Audio Equalizers 以及對播放的音效做出反應的視覺效果。
BitmapData.getPixels()
這個方法返回一個 ByteArray,其中內含點陣圖的指定矩形區功能變數中每個像素的十六進位彩色值。可以將這個方法與新的 ZLib 壓縮方法 ByteArray.compress() 結合使用,從而將點陣圖壓縮,然後再傳輸給伺服器,這樣就能夠將它轉換為一個適合下載的檔案。
Loader.close()
現在,可以停止播放器載入外部媒體的過程。在過去,如果將一個圖像載入進播放器,那麼在完成處理之前無法停止。現在可以這麼做了。


——————————————————————————–
【文章標題】: Flash動畫製作(Flash Action Script)
【文章作者】: Flash 動畫製作教學密訓基地
【作者信箱】: ster168ster@gmail.com
【作者首頁】: http://por.tw/flash/
【Flash 動畫製作教學課程】: http://por.tw/flash/new-E_learning/index.php
【基地主機】: http://goto1688.com/flash/
【版權聲明】: (原創)Flash 動畫製作教學密訓基地,轉載必須保留完整標頭。刪除者依法追究!
——————————————————————————–
ActionScript 3 的優點:
這個新版本具有以下優點:
這種語系支援類型安全性,使代碼維護更輕鬆。
與其他語系相比,這種語系相當簡單,很容易編寫。
開發人員可以編寫具有高效能的響應性代碼。
這種語系向後相容ActionScript 2 並向前相容 ECMAScript for XML(E4X)。
Tamarin 簡介
在 2006 年 11 月 7 日,Adobe Systems 宣佈將 ActionScript Virtual Machine 的代碼捐獻給 Mozilla Foundation。因此,Mozilla 啟動了一個新的開放源程式碼項目 Tamarin。Adobe 和 Mozilla 希望以此促進這種建立 Web 應用程式的標準化語系的推廣。
Tamarin 的目的
Tamarin 項目的目的是實現一個高效能的開放源程式碼的 ECMAScript 第四版(ES4)語系規範實現。Mozilla 在SpiderMonkey中使用 Tamarin Virtual Machine,SpiderMonkey 是 Firefox 和其他基於 Mozilla 的產品中內嵌的核心 JavaScript 引擎。Adobe 將繼續在 Adobe Flash Player 中的 ActionScript Virtual Machine 中使用這些代碼。
Tamarin Virtual Machine 現用的實現 ECMAScript 第三版語系標準(這是 JavaScript、Adobe ActionScript 和 Microsoft Jscript 採用的標準),還支援 ES4 中建議的一些新語系特性。社區正在開發 ES4 的開放源程式碼實現,Adobe 和 Mozilla 希望以此促進這種建立 Web 應用程式的標準化語系的推廣。Tamarin 項目的目的是說明開發人員建立可以跨多個平台的效果豐富的高度互動性的使用者體驗。
Tamarin 的發展計劃
Tamarin 將支援 ECMAScript 第四版(或是說 「JavaScript 2」)語系,並將整合進 Mozilla 2 項目中的SpiderMonkey,預期在 2008 年發佈。
Mozilla 的開放源程式碼項目團隊剛剛開始開發 Tamarin,它的一些目的技術內含:
將 Tamarin VM 和垃圾收集器整合進SpiderMonkey中
使用 SpiderMonkey編譯器生成 Tamarin 的代碼
將即時編譯器移植到新的硬體平台
完成 ECMAScript 4編譯器
使用 ActionScript 3 的簡單示例
這個 ActionScript 示例顯示歡迎訊息 「Hello <Username>」。使用者可以在文字方塊中輸入使用者名。按換行時,就會顯示歡迎訊息。
清單 1. 示例代碼
package {
public class Greeter {
/**
* Defines the names that should receive a proper greeting.
*/
public static var validNames:Array = ["Sammy", "Frank", "Dean"];
/**
* Builds a greeting string using the given name
*/
public static function sayHello (userName:String = ""):String {
var greeting:String = "Hello World";
if (userName == ""){
greeting = "Hello, please type your name and then press the enter key";
}
else if(validName(userName)){
greeting = "Hello, " + userName + ".";
}
else {
greeting = "Sorry, " + userName + "Your name is not present in the list.";
}
return greeting;
}
/**
* Check whether a name is in the validNames list
*/
public static function validName(inputName:String = ""):Boolean {
if validNames.indexOf(inputName) > -1 {
return true;
}
else {
return false;
}
}
}
}
顯示清單 1 的起始視窗。它顯示最初的歡迎訊息 「Hello, please type your name and then press the enter key」,然後等待使用者在標籤為 User Name 的文字方塊中輸入使用者名。
ActionScript 3 中的歡迎示例
當使用者在 User Name 框中輸入 「Frank」 時,腳本會在預定義的 validNames陣列中尋找這個使用者名。因為 「Frank」 在 validNames陣列中,所以在歡迎區功能變數中會顯示 「Hello Frank」,見圖 2。
使用者輸入使用者名
如果使用者輸入的使用者名不在 validNames陣列中,例如 「Anitha」,那麼顯示訊息 「Sorry, Anitha, your name is not present in the list」。
在下面,我提供了關於 ActionScript寫程式的出色的參考資料。還可以找到一個論壇的連結,使用 ActionScript 的開發人員在這裡直接回答任何問題。新的 ActionScript Virtual Machine 和 Flash Player 有許多令人興奮的改進,但是這超出了本文的範圍。如果您還沒有下載最新的 Flash Player 版本,就請下載它,體會一下它的眾多優點。

——————————————————————————–
【Flash 動畫製作】你在摸索如何製作 Flash 動畫及發佈到網站嗎?有【技術顧問服務】可諮詢嗎?
當問題無法解決你要發很多時間處理(或許永遠找出答案)那就是自己摸索 Flash 動畫製作痛苦的開始!
購買【Flash動畫製作教學】DVD課程,就可獲得【Flash 動畫製作】技術【顧問諮詢服務】!