本文主要講述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