나는 이것이 내가 원하는 것임을 확신하지만, 어떤 이유로 작동하지는 않는다. 캔버스를 확장하는 임의의 구성 요소를 호출하고 싶습니다. TestCanvasA, TestCanvasC, TestCanvasC라는 다양한 구성 요소가있을 수 있기 때문에 실행 시간까지 알 수 없으므로이 방법을 생각해 볼 수 있습니다. 여기에 내가 가진 것이있다.AddChild를 Flex에서 Dynamic DispalyObject로 사용
<mx:Script>
<![CDATA[
import component.TestCanvas;
import mx.containers.Canvas;
import flash.display.Sprite;
import flash.utils.getDefinitionByName;
private function init(evt:Event):void{
var Type:String="TestCanvas";
var controlClass:Class = getDefinitionByName(Type) as Class;
this.addChild(new controlClass() as Canvas);
}
]]>
</mx:Script>
멋진 아이디어가 될 것입니다. 응용 프로그램 내부의 클래스에 대한 참조가없는 한
var type:String="component.TestCanvas";
var controlClass:Class = getDefinitionByName(Type) as Class;
은 또한 단순한 import 문은 컴파일 된 SWF에서 클래스의 정의를 포함 할 필요는 없다 :
"작동하지 않는다"는 것을 설명 할 수 있습니까? 오류가 발생하면 오류를 게시하지 않았습니까? 그렇지 않은 경우 [디버그 버전의 플래시 플레이어] (http://www.adobe.com/support/flashplayer/downloads.html)를 설치 한 후 다시 시도하여 오류가 누락되지 않았는지 확인하십시오. – Amarghosh
사실 그것은 잘 작동했습니다. 내 문제는 외부 SWC에서 클래스에로드하고 클래스가 인식되지 않는 경우입니다. 클래스를 가져 와서 선언 한 SWC의 다른 클래스를로드하여 작동하도록했습니다. 그럼 난 그냥 그것이 완전히로드되었는지 확인하고 getDefinitionByName()를 다시 만났습니다! 다시 한번 감사드립니다! – abritez