天天看點

flash actionscript3.0語言的注意事項

本文主要講述C++與as語言文法和API運用的差異

1、as繼承基類時,不能把基類的靜态成員繼承下來,必須是哪個類聲明的靜态成員,就哪個類去調用.

2、actionscript語言中as操作符有着轉換資料類型的作用,如果曾經是某某類型那麼用as就可以轉換成這類型,否則為null

3、as加載圖檔的兩種方式

第一種方法比較靈活:

var loader:Loader = new Loader();

addChild(loader);

loader.load(new URLRequest("your.jpg/png"));

需要導入

import flash.net.URLRequest;

import flash.display.Loader;

該方法的好處在于,一個比較大的項目可以逐個加載,AS主體比較小,加載時可以并提示使用者加載的過程,使用者體驗比較好。

第二種方法:

public class imgclass extends Sprite

{

   [Embed(source="your.jpg/png")]

   private var yourimg:Class;

   public function imgclass ()

   {

      var image:Bitmap = new yourimg();

      addChild(image);

   }

}

4、資源讀取路徑要注意,如果用[Embed(source="xxx.jpg/png/swf")] var xxx:xxx;的話預設路徑是從Src路徑開始得,如果是用loader加載圖檔的話是從bin-debug開始讀取的。

5、在 ActionScript 3.0 中,所有的參數均按引用傳遞,因為所有的值都存儲為對象,但是,屬于基中繼資料類型(包括 Boolean、Number、int、uint 和 String)的對象為傳值操作。

6、在 ActionScript 3.0 中,不支援直接的函數重載,因為flash認為一個函數是一個對象,數組也是個對象,對象也是關聯數組,不能以編碼形式設定重載,如真需重載則可以使用可變參數的方式實作重載。

function demo(...args):void

{

      if(args.length==1)

     {

         if (args[0] is String)

                .......

     }

}

7、通過Embed的方式加載圖檔時,當加載swf時,不能從Class轉換成bitmap

var temp:bitmap=new Class;出錯!!!!!

8、URLLoader與loader的差別,loader主要用于加載圖檔及SWF的檔案,urlloader主要用于加載文本、XML及二進制檔案。

其中Loader需要注意利用loader.contentloaderinfo來加載事件,加載png、jpg等圖檔時 loader.content類型為bitmapdata

加載swf時類型為moveclip

繼續閱讀