Görüntüleme içeriğini dinamik olarak yüklemeFlash Player 9 ve üstü, Adobe AIR 1.0 ve üstü Şu harici görüntüleme varlıklarından herhangi birini ActionScript 3.0 uygulamasına yükleyebilirsiniz:
Loader sınıfını kullanarak bu varlıkları yüklersiniz. Görüntüleme nesnelerini yüklemeLoader nesneleri, bir uygulamaya SWF dosyaları ve grafik dosyaları yüklemek için kullanılır. Loader sınıfı, DisplayObjectContainer sınıfının bir alt sınıfıdır. Loader nesnesi, görüntüleme listesinde (yüklediği SWF veya grafik dosyasını temsil eden görüntüleme nesnesi) yalnızca bir alt görüntüleme nesnesi içerebilir. Görüntüleme listesine bir Loader nesnesi eklediğinizde, şu kodda olduğu gibi, yüklenen alt görüntüleme nesnesini yüklemenin ardından görüntüleme listesine ekleyebilirsiniz: var pictLdr:Loader = new Loader(); var pictURL:String = "banana.jpg" var pictURLReq:URLRequest = new URLRequest(pictURL); pictLdr.load(pictURLReq); this.addChild(pictLdr); SWF dosyası veya görüntü yüklendikten sonra, bu örnekteki container DisplayObjectContainer nesnesi gibi, yüklenen görüntüleme nesnesini başka bir görüntüleme nesnesi kabına da taşıyabilirsiniz: import flash.display.*; import flash.net.URLRequest; import flash.events.Event; var container:Sprite = new Sprite(); addChild(container); var pictLdr:Loader = new Loader(); var pictURL:String = "banana.jpg" var pictURLReq:URLRequest = new URLRequest(pictURL); pictLdr.load(pictURLReq); pictLdr.contentLoaderInfo.addEventListener(Event.COMPLETE, imgLoaded); function imgLoaded(event:Event):void { container.addChild(pictLdr.content); } Yükleme ilerlemesini izlemeDosya yüklenmeye başladıktan sonra, bir LoaderInfo nesnesi oluşturulur. LoaderInfo nesnesi, yükleme ilerlemesi, yükleyici ve yüklenenin URL'leri, medyanın toplam bayt sayısı ve medyanın nominal yüksekliği ve genişliği gibi bilgiler sağlar. LoaderInfo nesnesi, yükleme ilerlemesinin izlenmesine yönelik olaylar da gönderir. Aşağıdaki diyagram, LoaderInfo nesnesinin farklı kullanımlarını gösterir—örneğin, bir Loader nesnesi için ve Loader nesnesi tarafından yüklenen nesne için SWF dosyasının ana sınıfı: LoaderInfo nesnesine, hem Loader nesnesinin hem de yüklenen görüntüleme nesnesinin bir özelliği olarak erişilebilir. Yükleme başladığı anda, Loader nesnesinin contentLoaderInfo özelliği üzerinden LoaderInfo nesnesine erişilebilir. Görüntüleme nesnesinin yüklemesi sona erdiğinde, yüklenen görüntüleme nesnesinin bir özelliği olarak görüntüleme nesnesinin loaderInfo özelliği üzerinden de LoaderInfo nesnesine erişilebilir. Yüklenen görüntüleme nesnesinin loaderInfo özelliği, Loader nesnesinin contentLoaderInfo özelliği olarak aynı LoaderInfo nesnesini ifade eder. Başka bir deyişle, yüklenen bir nesne ile o nesneyi yükleyen Loader nesnesi arasında (yükleyen ile yüklenen arasında) LoaderInfo nesnesi paylaşılır. Yüklenen içeriğin özelliklerine erişmek için, aşağıdaki kodda olduğu gibi, LoaderInfo özelliğine bir olay dinleyicisi eklemek istersiniz: import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; var ldr:Loader = new Loader(); var urlReq:URLRequest = new URLRequest("Circle.swf"); ldr.load(urlReq); ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded); addChild(ldr); function loaded(event:Event):void { var content:Sprite = event.target.content; content.scaleX = 2; } Daha fazla bilgi için Olayları işleme bölümünü inceleyin. Yükleme içeriği belirtmeLoader sınıfının load() veya loadBytes() yöntemi üzerinden Flash Player ya da AIR uygulamasına harici bir dosya yüklediğinizde, isteğe bağlı olarak bir context parametresi belirtebilirsiniz. Bu parametre bir LoaderContext nesnesidir. LoaderContext sınıfı, yüklenen içeriğin kullanılabileceği bağlamı tanımlamanızı sağlayan üç özellik içerir:
Aşağıda, başka bir etki alanından bitmap yüklenirken ilke dosyasının denetlenmesine yönelik bir örnek yer almaktadır: var context:LoaderContext = new LoaderContext(); context.checkPolicyFile = true; var urlReq:URLRequest = new URLRequest("http://www.[your_domain_here].com/photo11.jpg"); var ldr:Loader = new Loader(); ldr.load(urlReq, context); Aşağıda, dosyayı Loader nesnesiyle aynı güvenlik sanal alanına yerleştirmek için başka bir etki alanından SWF yüklenirken ilke dosyasının denetlenmesine yönelik bir örnek yer almaktadır. Ayrıca kod, yüklenen SWF dosyasındaki sınıfları, Loader nesnesinin etki alanıyla aynı uygulama etki alanına ekler: var context:LoaderContext = new LoaderContext(); context.securityDomain = SecurityDomain.currentDomain; context.applicationDomain = ApplicationDomain.currentDomain; var urlReq:URLRequest = new URLRequest("http://www.[your_domain_here].com/library.swf"); var ldr:Loader = new Loader(); ldr.load(urlReq, context); Daha fazla bilgi için Adobe Flash Platformu için ActionScript 3.0 Başvurusu'nda bulunan LoaderContext sınıfına bakın. |
|