Paket | flash.system |
Sınıf | public class LoaderContext |
Miras Alma | LoaderContext Object |
Alt Sınıflar | JPEGLoaderContext |
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9, Flash Lite 4 |
load()
ve loadBytes()
yöntemlerinde context
parametresi olarak kullanılır.
SWF dosyalarını Loader.load()
yöntemiyle yüklerken iki karar vermeniz gerekir: yüklenen SWF dosyasının yerleştirilmesi gereken güvenlik etki alanı ve o güvenlik alanı içindeki uygulama etki alanı? Bu seçeneklerle ilgili daha ayrıntılı bilgi için applicationDomain
ve securityDomain
özelliklerine bakın.
Bir SWF dosyasını Loader.loadBytes()
yöntemiyle yüklerken, Loader.load()
için aynı uygulama etki alanı seçeneğine sahip olursunuz, ancak bir güvenlik etki alanı belirtmeniz gerekmez. Bunun nedeni Loader.loadBytes()
öğesinin yüklenen SWF'yi her zaman yüklenen SWF dosyasının güvenlik etki alanı içine yerleştirmesidir.
SWF dosyası yerine görüntü (JPEG, GIF veya PNG) yüklerken, bu kavramların yalnızca SWF dosyaları için anlamlı olmasından dolayı bir SecurityDomain veya uygulama etki alanı belirtmenize gerek yoktur. Bunun yerine, vermeniz gereken tek bir karar vardır: yüklenen görüntünün piksellerine programlama yoluyla erişmeniz gerekiyor mu? Bu durumda, checkPolicyFile
özelliğine bakın. Bir görüntü yüklerken deblokaj uygulamak istiyorsanız, LoaderContext sınıfı yerine JPEGLoaderContext sınıfını kullanın.
İlgili API Öğeleri
flash.display.Loader.loadBytes()
flash.system.ApplicationDomain
flash.system.JPEGLoaderContext
flash.system.LoaderContext.applicationDomain
flash.system.LoaderContext.checkPolicyFile
flash.system.LoaderContext.securityDomain
flash.system.SecurityDomain
flash.system.ImageDecodingPolicy
Özellik | Tanımlayan: | ||
---|---|---|---|
allowCodeImport : Boolean
Çağıranın güvenlik sanal alanına SWF dosyası gibi bir çalıştırılabilir kod ile içerik içe aktarmak için bir Loader nesnesi kullanıp kullanamayacağınızı belirler. | LoaderContext | ||
allowLoadBytesCodeExecution : Boolean
allowCodeImport ile değiştirilen eski özellik, ancak uyumluluk için hala desteklenir. | LoaderContext | ||
applicationDomain : ApplicationDomain = null
Loader.load() veya Loader.loadBytes() yöntemi için kullanılacak uygulama etki alanını belirtir. | LoaderContext | ||
checkPolicyFile : Boolean = false
Uygulamanın yüklenen nesnenin sunucusundan, bu nesneyi yüklemeye başlamadan önce URL ilke dosyası indirmeye çalışması gerekip gerekmediğini belirtir. | LoaderContext | ||
constructor : Object
Belirli bir nesne örneği için sınıf nesnesine veya yapıcı işlevine bir başvuru. | Object | ||
imageDecodingPolicy : String
Bitmap görüntü verilerinin kodunun kullanıldığında mı yoksa yüklendiğinde mi çözüleceğini belirtir. | LoaderContext | ||
parameters : Object
İçeriğin LoaderInfo nesnesine iletilecek parametreleri içeren bir Nesne. | LoaderContext | ||
requestedContentParent : DisplayObjectContainer
Loader nesnesinin yüklenen içeriği eklemeye çalışacağı üst öğe. | LoaderContext | ||
securityDomain : SecurityDomain = null
Loader.load() işlemi için kullanılan güvenlik etki alanını belirtir. | LoaderContext |
Yöntem | Tanımlayan: | ||
---|---|---|---|
LoaderContext(checkPolicyFile:Boolean = false, applicationDomain:ApplicationDomain = null, securityDomain:SecurityDomain = null)
Belirtilen ayarlarla yeni bir LoaderContext nesnesi oluşturur. | LoaderContext | ||
Bir nesnenin belirli bir özelliğinin tanımlı olup olmadığını gösterir. | Object | ||
Object sınıfının bir örneğinin parametre olarak belirtilen nesnenin prototip zincirinde olup olmadığını gösterir. | Object | ||
Belirtilen özelliğin bulunup bulunmadığını ve numaralandırılabilir olup olmadığını gösterir. | Object | ||
Dinamik bir özelliğin döngü işlemlerinde kullanılabilirliğini ayarlar. | Object | ||
Bu nesnenin, yerel ayara özel kurallara göre biçimlendirilmiş dize temsilini döndürür. | Object | ||
Belirtilen nesnenin dize olarak temsil edilen halini döndürür. | Object | ||
Belirtilen nesnenin temel değerini döndürür. | Object |
allowCodeImport | özellik |
public var allowCodeImport:Boolean
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10.1, AIR 2.0 |
Çağıranın güvenlik sanal alanına SWF dosyası gibi bir çalıştırılabilir kod ile içerik içe aktarmak için bir Loader
nesnesi kullanıp kullanamayacağınızı belirler. Etkilenen iki içe aktarma işlemi vardır: Loader.loadBytes()
yöntemi ve LoaderContext.securityDomain = SecurityDomain.currentDomain
ile Loader.load()
yöntemi. (Medya bileşeni işlemi AIR uygulama sanal alanında desteklenmez) allowCodeImport
özelliği false
değerine ayarlıyken, bu içe aktarma işlemleri görüntü yükleme gibi güvenli işlemlerle sınırlıdır. Loader.load()
yöntemi ile yapılan normal, içe aktarmasız SWF dosyası yüklemesi, bu özelliğin değeri tarafından etkilenmez.
Bu özellik, sanal alanınızın içine görüntü içeriği aktarmak istediğinizde kullanışlı olur - örneğin, farklı bir sanal alandan görüntü çoğaltmak veya işlemek istediğinizde - ancak yalnızca bir görüntü dosyası bekliyorken bir SWF dosyası almak istenmeyen türden bir güvenlik riskidir. SWF dosyaları ActionScript kodu içerebildiğinden, bir SWF dosyasını içe aktarmak bir görüntü dosyasını içe aktarmaktan çok daha riskli bir işlemdir.
Uygulama sanal alanındaki AIR içeriğinde false
, varsayılan değerdir. Uygulama olmayan içerikte (buna Flash Player'daki tüm içerik dahildir), varsayılan değer true
olur.
Flash Player 10.1 ve AIR 2.0'da allowCodeImport
özelliği eklenmişti. Ancak, bu özellik Flash Çalışma Zamanı onu desteklediğinde tüm sürümlerin SWF dosyaları için kullanılabilir hale getirilir.
İlgili API Öğeleri
allowLoadBytesCodeExecution | özellik |
allowLoadBytesCodeExecution:Boolean
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Lite 4 |
allowCodeImport
ile değiştirilen eski özellik, ancak uyumluluk için hala desteklenir. Daha önce, allowLoadBytesCodeExecution
öğesinden etkilenen tek işlem Loader.loadBytes()
yöntemiydi ancak Flash Player 10.1 ve AIR 2.0'da, Loader.load()
ile LoaderContext.securityDomain = SecurityDomain.currentDomain
öğelerinin içe aktarma yükleme işlemi de etkilenir. (Medya bileşeni işlemi AIR uygulama sanal alanında desteklenmez) Bu ikili özellik allowLoadBytesCodeExecution
özellik adını fazla spesifik bir hale getirdi, bundan dolayı, tercih edilen özellik adı allowCodeImport
'tur. allowCodeImport
veya allowLoadBytesCodeExecution
öğesini ayarlamak ikisinin de değerini etkiler.
Çağıranın güvenlik sanal alanına SWF dosyası gibi bir çalıştırılabilir kod ile içerik içe aktarmak için bir Loader
nesnesi kullanıp kullanamayacağınızı belirler. Bu özellik false
değerine ayarlıyken, bu içe aktarma işlemleri görüntü yükleme gibi güvenli işlemlerle sınırlıdır.
Uygulama sanal alanındaki AIR içeriğinde false
, varsayılan değerdir. Uygulama dışı içerikte true
varsayılan değerdir.
Uygulama
public function get allowLoadBytesCodeExecution():Boolean
public function set allowLoadBytesCodeExecution(value:Boolean):void
İlgili API Öğeleri
applicationDomain | özellik |
public var applicationDomain:ApplicationDomain = null
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Loader.load()
veya Loader.loadBytes()
yöntemi için kullanılacak uygulama etki alanını belirtir. Bu özelliği yalnızca ActionScript 3.0'da yazılan bir SWF dosyasını yüklerken kullanın. (ActionScript 1.0 veya ActionScript 2.0'da yazılan bir görüntü veya bir SWF dosyasını yüklerken kullanmayın.)
Her güvenlik etki alanı, ApplicationDomain nesneleri tarafından temsil edilen bir veya daha fazla uygulama etki alanına bölünmüştür. Uygulama etki alanları, güvenlik amacıyla kullanılmaz; ActionScript kodunun birlikte çalışan birimlerini yönetmek için kullanılır. Bir SWF dosyasını farklı bir etki alanından yüklüyorsanız ve dosyanın ayrı bir güvenlik etki alanı üzerine yerleştirilmesine izin veriyorsanız, yüklenen SWF'nin yerleştirileceği uygulama seçimini kontrol edemezsiniz. Bir uygulama etki alanı seçimi belirttiyseniz, bu seçim göz ardı edilir. Ancak, kendi güvenlik etki alanınıza bir SWF dosyası yüklüyorsanız (SWF dosyası, kendi etki alanınızdan geldiği için veya dosyayı kendi güvenlik etki alanınıza aktardığınız için), yüklenen SWF dosyasına ait uygulama etki alanı seçimini kontrol edebilirsiniz.
Bir uygulama etki alanını yalnızca LoaderContext.applicationDomain
içindeki kendi güvenlik etki alanınızdan iletebilirsiniz. Başka bir güvenlik etki alanından bir uygulama etki alanı iletme girişimi, bir SecurityError
istisnası ile sonuçlanır.
Kullanılacak ApplicationDomain
özelliği türü için dört seçeneğe sahipsiniz:
- Yükleyicinin ApplicationDomain öğesinin alt öğesi. Varsayılan. Bu seçimi,
new ApplicationDomain(ApplicationDomain.currentDomain)
sözdizimiyle açıkça temsil edebilirsiniz. Bu, yüklenen SWF dosyasının üst öğe sınıflarını doğrudan kullanmasına olanak tanır (örneğin,new MyClassDefinedInParent()
yazarak). Ancak, alt öğe sınıflarını kullanmak istemesi durumunda üst öğe, bu sözdizimini kullanamaz; bu sınıfları almak içinApplicationDomain.getDefinition()
öğesini çağırmalıdır. Bu seçimin avantajı, alt öğenin üst öğe tarafından önceden tanımlanmış bir sınıfla aynı adı taşıyan bir sınıfı tanımlaması durumunda hata oluşmamasıdır; alt öğe, üst öğenin sınıf tanımını miras alır ve alt veya üst öğe almak içinApplicationDomain.getDefinition()
yöntemini çağırmadıkça alt öğenin çakışan tanımı kullanılmaz. - Yükleyicinin kendi ApplicationDomain öğesi. Bu uygulama etki alanını
ApplicationDomain.currentDomain
öğesini kullanırken kullanırsınız. Yükleme işlemi tamamlandığında, üst ve alt öğeler birbirlerinin sınıflarını doğrudan kullanabilir. Bir alt öğe, önceden üst öğe tarafından tanımlanmış bir sınıfla aynı ada sahip bir sınıfı tanımlamaya çalışırsa, üst öğe sınıfı kullanılır, alt öğe sınıfı ise göz ardı edilir. - Sistem ApplicationDomain öğesinin alt öğesi. Bu uygulama etki alanını
new ApplicationDomain(null)
öğesini kullanırken kullanırsınız. Bu, yükleyen ve yükleneni tamamen ayırır ve bu öğelere aynı ada sahip ayrı sınıf sürümlerini çakışma veya aşma olmadan tanımlama olanağı tanır. Bir tarafın diğerinin sınıflarını görmesinin tek yolu,ApplicationDomain.getDefinition()
yöntemini çağırmasıdır. - Başka bir ApplicationDomain öğesinin alt öğesi. Nadiren, daha karmaşık bir ApplicationDomain hiyerarşisine sahip olursunuz. Herhangi bir ApplicationDomain öğesine, kendi SecurityDomain öğenizden bir SWF dosyası yükleyebilirsiniz. Örneğin,
new ApplicationDomain(ApplicationDomain.currentDomain.parentDomain.parentDomain)
, geçerli etki alanı üst öğesinin üst öğesinin yeni alt öğesine bir SWF dosyası yükler.
Yükleme tamamlandığında, taraflardan birinin ApplicationDomain.getDefinition()
öğesini çağırmak amacıyla (yükleyen veya yüklenen) kendi ApplicationDomain öğesini veya diğer tarafın ApplicationDomain öğesini bulması gerekebilir. Taraflardan her biri ApplicationDomain.currentDomain
öğesini kullanarak kendi uygulamasına bir başvuru alabilir. Yükleyen SWF dosyası, yüklenen SWF dosyasının ApplicationDomain öğesine Loader.contentLoaderInfo.applicationDomain
aracılığıyla bir başvuru alabilir. Yüklenen SWF dosyası nasıl yüklendiğini biliyorsa, yükleyen SWF dosyasının ApplicationDomain nesnesine giden yolu da bulabilir. Örneğin, alt öğe varsayılan yöntemle yüklenmişse, ApplicationDomain.currentDomain.parentDomain
kullanarak yükleyen SWF dosyasının uygulama etki alanını bulabilir.
Daha fazla bilgi için, ActionScript 3.0 Geliştirici Kılavuzu'nun "İstemci Sistem Ortamı" başlığının "ApplicationDomain sınıfı" bölümünü inceleyin.
İlgili API Öğeleri
checkPolicyFile | özellik |
public var checkPolicyFile:Boolean = false
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Uygulamanın yüklenen nesnenin sunucusundan, bu nesneyi yüklemeye başlamadan önce URL ilke dosyası indirmeye çalışması gerekip gerekmediğini belirtir. Bu bayrak, Loader.load()
yötemine uygulanabilir, ancak Loader.loadBytes()
yöntemine uygulanamaz.
Bir görüntüyü (JPEG, GIF veya PNG), çağıran SWF dosyasının kendi etki alanı dışından yüklerken ve o görüntünün içeriğine ActionScript'ten erişmeniz gerekiyorsa, bu bayrağı true
olarak ayarlayın. Görüntü içeriğine erişme örnekleri arasında bir Bitmap nesnesi elde etmek için Loader.content
özelliğine başvuru yapmak ve yüklenen görüntünün piksellerinin bir kopyasını elde etmek için BitmapData.draw()
yöntemini çağırmak bulunur. Bu işlemleri, yükleme süresinde checkPolicyFile
öğesini belirtmeden gerçekleştirmeye çalışırsanız, gereken ilke dosyası henüz indirilmediğinden SecurityError
istisnasıyla karşılaşabilirsiniz.
LoaderContext.checkPolicyFile
öğesi true
olarak ayarlanmış şekilde Loader.load()
yöntemini çağırırsanız, uygulama URLRequest.url
içinde belirtilen nesneyi ilgili bir URL ilke dosyasını indirinceye veya böyle bir ilke dosyasının olmadığını görünceye kadar indirmeye başlamaz. Flash Player veya AIR ilk olarak, önceden indirilmiş olan ilke dosyalarını göz önünde bulundurur, ardından Security.loadPolicyFile()
yöntemine yapılan çağrılarda belirtilen tüm bekleyen ilke dosyalarını indirmeye çalışır, daha sonra URLRequest.url
ile aynı sunucuda bulunan /crossdomain.xml
olan URLRequest.url
öğesine karşılık gelen varsayılan konumdaki bir ilke dosyasını indirmeye çalışır. Her durumda, verilen ilke dosyasının ilke dosyasının konumunu temel alarak URLRequest.url
öğesinde bulunması ve dosyanın bir veya daha çok <allow-access-from>
etiketine dayanarak erişime izin vermesi gerekir.
checkPolicyFile
öğesini true
olarak ayarlarsanız, Loader.load()
yönteminde belirlenen ana indirme, ilke dosyası tamamen işlenene kadar yüklenmez. Dolayısıyla, ihtiyacınız olan ilke dosyası var olduğu sürece, siz herhangi ProgressEvent.PROGRESS
veya Event.COMPLETE
olayını Loader nesnenizin contentLoaderInfo
özelliğinden alır almaz, ilke dosyası indirme işlemi tamamlanır; ilke dosyası gerektiren işlemleri gerçekleştirmeye güvenli bir şekilde başlayabilirsiniz.
checkPolicyFile
öğesini true
olarak ayarlarsanız ve ilgili bir ilke dosyası bulunmazsa, SecurityError
istisnası atan bir işlem yapmaya çalışana kadar herhangi bir hata göstergesiyle karşılamazsınız. Ancak, LoaderInfo nesnesi bir ProgressEvent.PROGRESS
veya Event.COMPLETE
olayı gönderdiğinde, ilgili bir ilke dosyasının LoaderInfo.childAllowsParent
özelliğini kontrol ederek bulunup bulunmadığını test edebilirsiniz.
Yüklemekte olduğunuz görüntüye piksel düzeyinde erişime ihtiyacınız yoksa, checkPolicyFile
özelliğini true
olarak ayarlamayın. İndirme işleminizin başlamasını geciktirebileceğinden ve ağ bant genişliğini gereksiz biçimde tüketebileceğinden bu durumda bir ilke dosyası aramanız gerekmez.
Ayrıca, bir SWF dosyasını indirmek için Loader.load()
kullanıyorsanız, checkPolicyFile
öğesini true
olarak ayarlamaktan kaçının. Bunun nedeni, SWF'den SWF'ye olan izinlerin ilke dosyaları tarafından değil, Security.allowDomain()
yöntemi tarafından kontrol edilmesi ve böylece checkPolicyFile
öğesinin bir SWF dosyası yüklediğinizde hiçbir etkisinin olmamasıdır. SWF dosyasının indirilmesini geciktirebileceğinden ve ağ bant genişliğini gereksiz biçimde tüketebileceğinden bu durumda bir ilke dosyası aramanız gerekmez. (İlke dosyasını indirme işlemi, ana indirme işleminden önce yapılacağından Flash Player veya AIR, ana indirme işleminizin bir SWF dosyası veya bir görüntü olacağını size bildiremez.)
Sunucu tarafı HTTP yönlendirmelerini kullanabilen bir URL'den nesne indiriyorsanız, checkPolicyFile
öğesine dikkat edin. İlke dosyaları her zaman URLRequest.url
öğesinde belirttiğiniz karşılık gelen ilk URL'den alınır. HTTP yönlendirmeleri nedeniyle son nesne farklı bir URL'den gelirse ilk olarak indirilmiş olan ilke dosyaları, nesnenin güvenlik kararlarında önemli olan son URL'sine uygulanamayabilir. Bu durumla karşılaşırsanız, nesnenin son URL'sini belirten ProgressEvent.PROGRESS
veya Event.COMPLETE
olayını aldıktan sonra LoaderInfo.url
öğesinin değerini inceleyebilirsiniz. Ardından, nesnenin son URL'sine bağlı bir ilke dosyası URL'siyle Security.loadPolicyFile()
yöntemini çağırın. Daha sonra, true
olana kadar LoaderInfo.childAllowsParent
değerini sorgulayın.
Bu özelliği uygulama sanal alanında çalışan AIR içeriği için ayarlamanız gerekmez. AIR uygulama sanal alanındaki içerik, yüklenen herhangi bir görüntüyü kaynak olarak kullanarak BitmapData.draw()
yöntemini çağırabilir.
İlgili API Öğeleri
imageDecodingPolicy | özellik |
public var imageDecodingPolicy:String
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 2.6, Flash Player 11 |
Bitmap görüntü verilerinin kodunun kullanıldığında mı yoksa yüklendiğinde mi çözüleceğini belirtir.
Varsayılan ilke olan ImageDecodingPolicy.ON_DEMAND
öğesine göre, çalışma zamanı görüntü verisinin kodunu (görüntüleme veya başka amaçla) ihtiyaç duyulduğunda çözer. Bu ilke çalışma zamanının önceki sürümleri tarafından kullanılan kod çözme davranışını korur.
ImageDecodingPolicy.ON_LOAD
ilkesine göre çalışma zamanı görüntünün kodunu yüklendikten hemen sonra ve complete
olayı gönderilmeden önce çözer. Görüntü kodlarının talep üzerine değil de yükleme üzerine çözülmesi animasyon ve kullanıcı arabirimi performansını iyileştirebilir. Yüklenmiş olan birkaç görüntü hızlı bir şekilde arka arkaya görüntülendiğinde bir iyileşme fark edebilirsiniz. Görüntülerin hızlı bir şekilde görüntülendiği durumlara örnek olarak kaydırma listeleri veya kapak akışı kontrolü verilebilir. Diğer yandan, onLoad
ilkesini her durumda kullanmak uygulamanızın bellek kullanım zirvesini yükseltebilir. onDemand
politikasıyla karşılaştırıldığında, bir seferde bellekte daha fazla kodu çözülmüş görüntü verisi bulunabilir.
Her iki ilkede de, çalışma zamanı görüntünün kodu çözüldükten sonra aynı önbelleğe alma ve temizleme davranışını kullanır. Çalışma zamanı, kodu çözülmüş veriyi herhangi bir zamanda temizleyebilir ve bir sonraki gerekli oluşunda görüntünün kodunu yeniden çözebilir.
Görüntü kodu çözme ilkesini (örneğin ON_LOAD
olacak şekilde) ayarlamak için:
var loaderContext:LoaderContext = new LoaderContext(); loaderContext.imageDecodingPolicy = ImageDecodingPolicy.ON_LOAD var loader:Loader = new Loader(); loader.load(new URLRequest("http://www.adobe.com/myimage.png"), loaderContext);
İlgili API Öğeleri
parameters | özellik |
public var parameters:Object
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10.2, AIR 2.6 |
İçeriğin LoaderInfo nesnesine iletilecek parametreleri içeren bir Nesne.
Normalde, contentLoaderInfo.parameters
özelliğinin değeri talepte bulunan URL'yi ayrıştırarak elde edilir. parameters
değişkeni ayarlıysa, contentLoaderInfo.parameters
öğesi değerini talepte bulunan URL yerine LoaderContext nesnesinden alır. parameters
değişkeni, URL parametrelerine benzer bir şekilde yalnızca ad-değer Dize çiftlerini içeren nesneleri kabul eder. Nesne ad-değer dize çiftleri içermiyorsa IllegalOperationError
gönderilir.
Bu API'nin hedefi, parametrelerini yüklenmiş bir SWF dosyasına iletmek için yüklenen SWF dosyasını etkinleştirmektir. LoadBytes
öğesi parametreleri URL ile iletmek için bir yol sağlamadığından,bu işlev özellikle loadBytes()
yöntemini kullandığınızda faydalıdır. Parametreler yalnızca diğer AS3 SWF dosyalarına başarıyla iletilebilir; iletilen nesne AVM1Movie öğesinin AS3 loaderInfo.parameters nesnesi olsa da, bir AS1 veya AS2 SWF dosyası parametreleri erişilebilir bir biçimde alamaz.
Örneğin aşağıdaki URL'yi göz önünde bulundurun:
http://yourdomain/users/jdoe/test01/child.swf?foo=bar;
Aşağıdaki kod, bu URL'ye iletilen parametreyi çoğaltmak için LoaderContext.parameters özelliğini kullanır:
import flash.system.LoaderContext; import flash.display.Loader; var l:Loader = new Loader(); var lc:LoaderContext = new LoaderContext; lc.parameters = { "foo": "bar" }; l.load(new URLRequest("child.swf"), lc);
Parametrenin düzgün şekilde iletildiğini doğrulamak için bu kodu çalıştırdıktan sonra aşağıdaki izleme ifadesini kullanın:
trace(loaderInfo.parameters.foo);
İçerik başarılı bir şekilde yüklenirse bu iz "bar" ifadesini yazdırır.
requestedContentParent | özellik |
public var requestedContentParent:DisplayObjectContainer
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 10.2, AIR 2.6 |
Loader nesnesinin yüklenen içeriği eklemeye çalışacağı üst öğe.
İçerik tamamen yüklendiğinde, Loader nesnesi normalde içeriğin üst öğesi olur. requestedContentParent
ayarlıysa, bir çalışma zamanı atamayı engellemediği sürece belirttiği nesne üst öğe olur. Üst öğeleri yeniden ayarlama işlemi bu özellik kullanılmadan complete
olayından sonra da gerçekleştirilebilir. Ancak, üst öğeyi LoaderContext.requestedContentParent
yöntemiyle belirtmek fazladan olayları ortadan kaldırır.
LoaderContext.requestedContentParent
istenilen üst öğeyi yüklenen içerikteki ilk karenin komut dosyaları yürütülmeden önce, ancak yapıcı çalıştıktan sonra ayarlar. requestedContentParent
öğesi null (varsayılan) değerine sahipse Loader nesnesi içeriğin üst öğesi olur.
Yüklenen içerik bir AVM1Movie nesnesiyse veya requestedContentParent
nesnesinde addChild()
öğesi çağrıldığında bir hata gönderiliyorsa aşağıdaki eylemler gerçekleşir:
- Loader nesnesi yüklenen içeriğin üst öğesi olur.
- Çalışma zamanı bir
AsyncErrorEvent
öğesi gönderir.
Talep edilen üst öğe ve yüklenen içerik farklı güvenlik sanal alanlarındaysa ve talep edilen üst öğenin yüklenen içeriğe erişimi yoksa aşağıdaki eylemler gerçekleşir:
- Loader yüklenen içeriğin üst öğesi olur.
- Çalışma zamanı bir
SecurityErrorEvent
olayı gönderir.
Aşağıdaki kod yüklenen içeriği bir Sprite nesnesine yerleştirmek için requestedContentParent
öğesini kullanır:
import flash.system.LoaderContext; import flash.display.Loader; import flash.display.Sprite; var lc:LoaderContext = new LoaderContext(); var l:Loader = new Loader(); var s:Sprite = new Sprite(); lc.requestedContentParent = s; addChild(s); l.load(new URLRequest("child.swf"), lc);
Bu kod çalıştırıldığında, alt SWF dosyası sahne alanı üzerinde görünür. Bu durum, sahne alanına eklediğiniz Sprite nesnesinin yüklenen child.swf dosyasının üst öğesi olduğunu doğrular.
securityDomain | özellik |
public var securityDomain:SecurityDomain = null
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | Flash Player 9, AIR 1.0, Flash Lite 4 |
Loader.load()
işlemi için kullanılan güvenlik etki alanını belirtir. Bu özelliği yalnızca bir SWF dosyası (görüntü değil) yüklerken kullanın.
Güvenlik etki alanı seçimi yalnızca yükleyen SWF dosyasından farklı bir etki alanından gelebilen (farklı bir sunucu) bir SWF dosyası yüklüyorsanız anlam ifade eder. Kendi etki alanınızdan bir SWF dosyası yüklediğinizde, bu dosya her zaman sizin güvenlik etki alanınıza yerleştirilir. Ancak farklı bir etki alanından bir SWF dosyası yüklediğinizde, iki seçeneğiniz olur: Yükleyen SWF dosyasından farklı olarak “doğal“ güvenlik etki alanına yerleştirilecek yüklenen SWF dosyasına izin verebilirsiniz; bu varsayılan bir özelliktir. Diğer seçenek ise yüklenen SWF dosyasını yükleyen SWF dosyasıyla aynı güvenlik etki alanı içine yerleştirmek istediğinizi belirtmenizdir. Bunu myLoaderContext.securityDomain
öğesiniSecurityDomain.currentDomain
ile aynı olacak şekilde ayarlayarak yapabilirsiniz. Bu işleme içe yükleme aktarma adı verilir ve güvenlik nedeniyle yüklenen SWF dosyasını kendi sunucunuza kopyalayıp onu oradan yüklemenizle eşdeğerdir. İçe yükleme işleminin başarılı olması için, yüklenen SWF dosyasının sunucusunun yükleyen SWF dosyasının etki alanına güvenen bir ilke dosyasına sahip olması gerekir.
Kendi güvenlik etki alanınızı yalnızca LoaderContext.securityDomain
içinde iletebilirsiniz. Başka bir güvenlik etki alanı iletme girişimi SecurityError
istisnasıyla sonuçlanabilir.
AIR uygulama güvenlik sanal alanındaki içerik SecurityDomain öğesine diğer sanal alanlardan içerik yükleyemez.
Daha fazla bilgi için, bkz. ActionScript 3.0 Geliştirici Kılavuzu'ndaki "Güvenlik" bölümüne bakın.
İlgili API Öğeleri
LoaderContext | () | Yapıcı |
public function LoaderContext(checkPolicyFile:Boolean = false, applicationDomain:ApplicationDomain = null, securityDomain:SecurityDomain = null)
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Belirtilen parametreler ile yeni LoaderContext nesnesi oluşturur. Bu ayarlarla ilgili eksiksiz ayrıntılar için bu sınıfa ait özelliklerin açıklamalarına bakın.
ParametrelercheckPolicyFile:Boolean (default = false ) — Nesnenin yüklenmesinden önce URL ilke dosyasının mevcudiyetine ilişkin bir kontrol yapılması gerekip gerekmediğini belirtir.
| |
applicationDomain:ApplicationDomain (default = null ) — Bir Loader nesnesi için kullanmak üzere ApplicationDomain nesnesini belirtir.
| |
securityDomain:SecurityDomain (default = null ) — Bir Loader nesnesi için kullanmak üzere SecurityDomain nesnesini belirtir.
Not: AIR uygulama güvenlik sanal alanındaki içerik SecurityDomain öğesine diğer sanal alanlardan içerik yükleyemez |
İlgili API Öğeleri
Tue Jun 12 2018, 01:09 PM Z