程式員眼中的Flash MX2004(1)

來源:互聯網
上載者:User
程式|程式員   對於做動畫、MTV、Web Design之類的Designer,Flash 5已經綽綽有餘;對於開發RIA的Developer,Flash MX在協同工作、源檔案和代碼管理上是非常差的。即將推出的Flash MX 2004中的編程特性有很大突破,令人有耳目一新的感覺,Developer甚至可以掉去Tool Bar繪圖工具和Timeline。下面我們就單純從編程方面來看看Flash MX 2004的新特性。

   一、Flash Player 7
  在效能方面,根據Macromedia網頁資料,Flash Player 7在執行Action Script、播放Video、以及一般的映像顯示等方面都有明顯的改進。這對要用Flash來做比較複雜編程應用的人來說,絕對是個好訊息。
  除了錯誤修正和運行效率提高,Flash Player 7也多了許多使用者可以控制的東西。例如,瀏覽使用者可以通過右鍵菜單點擊一個串連開啟一個新視窗。(現在Flash Player 7有新的選項:開啟、在新視窗開啟、拷貝串連。)
此外,為了協助使用者保持最新版本的補丁,Flash Player 7包含了自動更新特性,播放器每隔一段時間都會檢測一次新版本並指導使用者更新版本,這意味著使用者們將非常容易地升級播放器,從而得到最新版本的執行效率和安全性的提高。

   二、Action Script 2.0
  在新版本中,Action Script的編程面板和編程特性都改動非常大。
   A. 編程面板
  為了提高編程的效率和易用性,Action Script的編程面板在很多方面都做了改進,這裡列出的只是一些比較明顯的特性。
  1. 編程時文字的自動匹配:在Script面板、Debugger面板、Output面板,輸入某個關鍵字的一部分時,都會有一個快顯視窗,顯示匹配的單詞。
  2. 關聯的協助資訊:當游標移動到Action Script的關鍵字上的時候,在菜單上會顯示相關的說明主題,這對Action Script不是很熟練的人來說很有用。
  3. 匯入Scripts:在Action面板的快顯功能表上選取“Import Script”功能時,匯入的Scripts會插入到相應的地方。之前版本的Flash在匯入Scripts後會覆蓋原先的Script。
  4. 斷點設定:在面板的左邊點擊一下,就可以設定一個斷點。所謂的斷點就是偵錯工具的時候,運行到斷點所在的位置就會停下來,這對監視程式運行中的變數很有用。
  5. Action 面板不再區分“普通模式”和“專家模式”:在新版本中,只能在Script面板中直接輸入命令。
  6. Action面板中顯示多個Scripts:這有是一個非常有用的功能,不用再跳來跳去,從而大幅度提高開發效率。
   B. 編程特性
  Action Script一直都在發展,每次Flash新版本的發布,都會加入新的關鍵字、對象、方法、元素等等。但與之前的Flash版本不同,Flash MX 2004實現了更標準的物件導向編程方法,改動的地方非常之大,所以就出現了一個新的Action Script版本:Action Script 2。
如果說Action Script 1.0是JavaScript,那2.0就是Java,嚴謹的Data Type,完全Class Based,非常類似Java! Action Script 2.0的出現,並不表示舊的Action Script 1.0被淘汰,因為Action Script 2.0隻是給開發人員一個更嚴謹的程式設計語言,方便開發,方便編譯時間Debug等。用Action Script 2.0寫的Flash,也可以給Flash Player 6支援,因為1.0和2.0都是編譯為同一類Byte-code。2.0除了編程文法、概念分別外,它必須寫在*.as外部檔案中,只被專業版支援。傳統程式員可能會更喜歡用Action Script 2.0。下面我們來看看Action Script 2的編程特性。
  1. 嚴格的資料類型
  在使用一個變數之前要先定義它。變數的類型不符會很容易導致很多的錯誤,嚴格的資料類型可以防止在一個變數上面賦與錯誤類型的值。嚴格的資料類型還有一個好處就是當Action面板會針對變數顯示編程提示,比如方法,值之類的。
  2. 新的語言元素
  在Flash MX 2004中加了不少新的語言元素,要注意的是,在編程中用了新的語言元素,必須要在Flash Player 7中才有效。
Button.menu, MovieClip.menu 和 TextField.menu
  這些屬性基於ContextMenu類,在給對象加入新菜單選項時用。
  ContextMenu 和 ContextMenuItem
  這兩個類可以定製右擊Flash Player時contextmenu的顯示。
  Error, Throw 和 Try..Catch..Finally
  通過這幾個激動人心的東西可以更有效地處理異常。
  LoadVars.addRequestHeader() 和 XML.addRequestHeader()
  這兩個方法可以添加或更改HTTP的POST要求標頭(像Content-Type 和 SOAP Action)。
  MMExecute()
  這個函數可以在Action Script中引用Flash JavaScript API,比如,在Text Field中點擊一個HTML串連,可以在Action Script中引發一個函數。
  Mouse.onMouseWheel
  這個不用說了吧?滾動滑鼠滾輪的時候就會觸發它。
  MovieClip.getNextHighestDepth()
  這個函數返回一個Movie Clip的最大深度。
  MovieClip.getSWFVersion()
  這個方法可以決定發布的SWF檔案支援哪個版本的Flash Player。
  MovieClip._lockroot
  這個屬性可以讓你指定一個Movie Clip做為一個_root,這樣你就可以在其他的Clip中引用這個Clip,也可以鎖定一個_root的Clip被Load到其他Clip中也不會改變。
  Sound.onID3 和 Sound.ID3
  Sound.onID3事件提供了一種途徑去操作包含MP3檔案的ID3資料。Sound.ID3屬性可以存取MP3檔案的中繼資料。
  TextField.condenseWhite
  這個屬性可以去除文本域中多餘的空格。
  TextField.StyleSheet
  通過這個類可以建立一個style sheet對象,style可以來自CSS 1.0文檔,也可以通過Action Script添加。
  System 和 System.capabilities
  System多了新的對象和方法,System.capabilities對象中也多了幾個新的屬性。
  3. 新的關鍵字
  Action Script 2中支援Action Script 1中的所有標準關鍵字。在Action Script 2可以用更物件導向的方法去編程。
  下面這些關鍵字是在Action Script 2中新增的。
  class
  extends
  implements
  interface
  dynamic
  static
  public
  private
  get
  set
  import
   C. ActionScript 2 編程例子
  這裡不可能完整地講解Action Script 2。Action Script 2完全符合ECMA 262 第四版的規範(http://www.mozilla.org/js/language/es4/) 。下面我們來看看幾個Action Script 2的編程例子。
Class
這是一個介紹如何在Flash MX2004中用classes的簡單例子。
// class declaration:
class TPoint
{
// class properties:
var _x:Number = 0;
var _y:Number = 0;
// class contructor
function TPoint() {
}
}
這是一個稍微複雜一點的例子。
// class declaration:
class TPoint
{
// class properties:
var _x:Number = 0;
var _y:Number = 0;
// class contructor
function TPoint(x:Number, y:Number)
{
if (arguments.length > 0)
{
_x = x;
_y = y;
}
}
// function to overwrite properties with new values
function SetPoint(x:Number, y:Number)
{
_x = x;
_y = y;
}
}
下面是調用剛剛定義的類。
var Point0:TPoint = new TPoint();
var Point1:TPoint = new TPoint(5,5); // default values
Extends
這是繼承的簡單例子。
class TPoint3D extends TPoint
{
var _z:Number = 0;

function TPoint3D(x, y, z:Number)
{
if (arguments.length > 0)
{
super(x, y);
_z = z;
}
}
}

相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。