2012年3月8日 星期四

[AS3] 調用本地的CLASS

調用 外部SWF 的CLASS 已經是稀鬆平常的事了~
調用本地類別 的CLASS 通常都是直接打 比較快 還有提示~
萬一本地的類別太多 須要靠拼字來調用
會讓程式碼減短一點
可以利用這招
this.loaderInfo.applicationDomain.getDefinition('className')
來調用~
這招我用很久了~
不過到最近工作才發現~
原來他有一個限制

就是一定要新增到場景上后 才能調用該類別 !

下面是測試的程式碼

package
{
import flash.display.Sprite;

public class testLocalClassCall extends Sprite
{
public function testLocalClassCall()
{
trace("test !!!!");
var cla:Class;
if(this.loaderInfo.applicationDomain.hasDefinition('mc1'))
cla  = this.loaderInfo.applicationDomain.getDefinition('mc1') as Class;
trace('mc1 ' + cla)
}
}
}


理論上 會有這樣的輸出

test !!!!
mc1 : null
原來以前某些案子的 null 是這樣來的
所以以後調用 本地端的函數
還是先寫好 switch 然後~
靠拼字去取得 class 比較妥當


沒有留言 :