main.swf와 external.swf라는 두 개의 SWF가 있습니다. main.swf가 external.swf에 몇 가지 방법에 액세스해야하는, 그래서 그 자체로 external.swf로드하고 클래스와 그 방법 중 하나에 액세스 할 ("package.Class")의 getDefinitionByName를 사용 : 이제AS3 및 getDefinitionByName()을 사용하여 동적으로로드되는 클래스의 public 메서드를 재정의합니다.
var ExternalClass = getDefinitionByName("package.Class") as Class;
var ClassInstance = new ExternalClass();
var NeededFunction:Function = ClassInstance["NeededFunction"] as Function;
var response:String = NeededFunction(param);
을, NeededFunction (public 메서드)의 기능을 확장해야합니다 ... public 메서드를 재정의하는 것이 가능하다는 것을 알고 있지만 동적으로로드 된 클래스를 사용하면 어떻게됩니까?
것은 나는 이런 식으로 뭔가를 할 수있는 생각,하지만 작동하지 않습니다 모두 SWF에서 액세스 할 수있는 패키지의 클래스를 가질 수이 다루는
var ClassInstance["NeededFunction"] = function(param1:uint):String {
var newString = "Your number is: "+param1.toString(); //New functionality
return newString;
}
불행히도 SWF 클래스에 액세스 할 수 없거나 이전에 제안한 내용을 수행했을 것입니다. 필자가 확장해야하는 방법은 독점 SWC 라이브러리에서 가져온 것이므로 분해하지 않으면 SWC를 수정할 수 없습니다. – lefthandpath
이 도움말은 도움이 될 수 있습니다 : http://www.airtightinteractive.com/2009/06/better-flash-asset-loading-using-swcs/ – PatrickS