जब आप किसी अन्य में एक एसडब्ल्यूएफ लोड करते हैं, तो लोडर एसडब्ल्यूएफ ApplicationDomain.getDefinition(name:String)
का उपयोग करके लोड किए गए एसडब्ल्यूएफ से विशिष्ट परिभाषाएं प्राप्त कर सकता है। उदाहरण के लिए:एक लोड किए गए एसडब्ल्यूएफ के आवेदन डोमेन में सभी परिभाषाएं कैसे प्राप्त करें?
package
{
// ... imports
public class SWFLoader extends Sprite
{
private var loadedAppDomain:ApplicationDomain;
public function SWFLoader()
{
var request:URLRequest = new URLRequest("test.swf");
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onTestLoadComplete);
loader.load(request);
}
private function onTestLoadComplete(event:Event):void
{
var loaderInfo:LoaderInfo = LoaderInfo(event.target);
loadedAppDomain = loaderInfo.applicationDomain;
// Here we can get ANY defined symbol (class, namespace or function according to Adobe Flash help)
var someSymbolClass:Class = Class(loadedAppDomain.getDefinition("SomeSymbol"));
var someSymbolSprite:Sprite = Sprite(new someSymbolClass());
addChild(sprite);
}
}
}
कैसे मैं एक स्पष्ट रूप से निर्दिष्ट किए बिना एक SWF में परिभाषाओं के सभी प्राप्त कर सकते हैं?
सुंदर। आखिरकार एडोब ने इस कार्यक्षमता को जोड़ा :) –
3/31/2014 तक, विधि वास्तव में दस्तावेज़ीकृत नहीं है। ApplicationDomain के प्रलेखन लिंक पर 'getQualifiedDefinitionNames' का कोई उल्लेख नहीं है। विधि, हालांकि, काम करता है, और यह एक 'वेक्टर लौटाता है। उस विशेष एप्लिकेशनडोमेन में परिभाषित कक्षाओं के '। यह भी ध्यान रखें कि यह मूल डोमेन की परिभाषाओं को वापस नहीं करता है, भले ही GetDefinition/hasDefinition मूल डोमेन में परिभाषित कक्षाओं के लिए सच हो जाए। –
Triynko
यह वहां प्रलेखित है लेकिन इसे देखने के लिए आपको प्लेयर संस्करण को 11.3 या उससे ऊपर सेट करने की आवश्यकता है। पेज शीर्षक के नीचे शीर्ष पर। फ़िल्टर करने के लिए मुझे पेश करने के लिए –