メモです。
FLASH側で作成したシンボル(リンケージ済)をFlex Builderで読み込みたい時。
Flex Builder(Flex SDK)側でコンパイルの場合
package
{
import flash.display.Sprite;
public class Test extends Sprite
{
[Embed(source="Test.swf", symbol="TestMc")]
private var TestMc:Class;
public function Test()
{
addChild(new TestMc() );
}
}
}
Embedを使用。※FLASH側でTest.swfを作成してから。
FLASH側でコンパイルの場合
package
{
import flash.display.Sprite;
import flash.utils.getDefinitionByName;
public class Test extends Sprite
{
private var TestMc:Class = Class( getDefinitionByName("TestMc"));
public function Test()
{
addChild(new TestMc() );
}
}
}
getDefinitionByNameを使用し、動的にクラス(リンケージシンボル)を読み込み。
今までFLASH CS3 + FlashDevelopのみで制作してたので気がつかなかったのだが、Flex Builderをエディタとして使用している人への配慮を考えると、getDefinitionByNameにてリンケージシンボルを呼び出した方がいいのかなと思ったり。