İçerik yüklemeFlash Player 9 ve üstü, Adobe AIR 1.0 ve üstü Flash Player ve AIR içeriği aşağıdakilerin de yer aldığı birçok türde başka içerik yükleyebilir:
SWF dosyalarını ve görüntülerini Yükleyici sınıfıyla yükleyinSWF dosyalarını ve görüntüleri (JPG, GIF veya PNG dosyaları) yüklemek için Loader sınıfını kullanırsınız. Dosya sistemiyle yerel sanal alanda bulunanlar dışında herhangi bir SWF dosyası, herhangi bir ağ etki alanından SWF dosyalarını ve görüntülerini yükleyebilir. Yalnızca yerel sanal alanlardaki SWF dosyaları, yerel dosya sisteminden SWF dosyalarını ve görüntüleri yükleyebilir. Ancak, ağ iletişimiyle yerel sanal alandaki dosyalar yalnızca yerel güvenilen veya ağ iletişimiyle yerel sanal alanda bulunan yerel SWF dosyalarını yükleyebilir. Ne var ki, ağ iletişimiyle yerel sanal alanda bulunan SWF dosyaları, SWF dosyaları dışındaki yerel içerikleri (örn. görüntüler) yükler ancak yüklenen içerikteki verilere erişemez. Güven onayı verilmeyen bir kaynaktan (örn. Loader nesnesinin kök SWF dosyasının etki alanı dışındaki bir etki alanından) SWF dosyası yüklerken, aşağıdaki kodda olduğu gibi, Loader nesnesi için bir maske tanımlayarak, yüklenen içeriğin (bu, Loader nesnesinin bir alt öğesidir), Sahne Alanı'nın o maske dışında kalan kısımlarına çizim yapmasını önlemek isteyebilirsiniz: import flash.display.*; import flash.net.URLRequest; var rect:Shape = new Shape(); rect.graphics.beginFill(0xFFFFFF); rect.graphics.drawRect(0, 0, 100, 100); addChild(rect); var ldr:Loader = new Loader(); ldr.mask = rect; var url:String = "http://www.unknown.example.com/content.swf"; var urlReq:URLRequest = new URLRequest(url); ldr.load(urlReq); addChild(ldr); Loader nesnesinin load() yöntemini çağırdığınızda, LoaderContext nesnesi olan bir context parametresini belirtebilirsiniz. LoaderContext sınıfı, yüklenen içeriğin kullanılabileceği bağlamı tanımlamanızı sağlayan üç özellik içerir:
Ayrıntılar için, bkz. Yükleme içeriği belirtme. Loader nesnesinin önemli bir özelliği, LoaderInfo nesnesi olan contentLoaderInfo özelliğidir. Diğer birçok nesnenin aksine LoaderInfo nesnesi, yükleyen SWF dosyası ile yüklenen içerik arasında paylaşılır ve her zaman iki taraf da nesneye erişebilir. Yüklenen içerik bir SWF dosyası olduğunda, DisplayObject.loaderInfo özelliği üzerinden LoaderInfo nesnesine erişebilir. LoaderInfo nesneleri, yükleme ilerlemesi, yükleyenin ve yüklenenin URL'leri, yükleyen ile yüklenen arasındaki güven onayı ilişkisi, vb. bilgileri içerir. Daha fazla bilgi için, bkz. Yükleme ilerlemesini izleme. Ses ve video yüklemeDosya sistemiyle yerel sanal alanda bulunanlar dışında tüm içerik, Sound.load(), NetConnection.connect() ve NetStream.play() yöntemlerini kullanarak ağ kaynaklarından ses ve video yüklemesine izin verilir. Yalnızca dosya sistemiyle yerel ve AIR uygulaması sanal alanlarındaki içerik, yerel dosya sisteminden yerel medya yükleyebilir. Bu yüklenmiş dosyalara yalnızca dosya sistemiyle yerel sanal alanı ve AIR uygulama sanal alanı ya da yerel-güvenilir sanal alanı erişebilir. Yüklenen ortamdaki verilere erişilmesine yönelik başka kısıtlamalar da vardır. Ayrıntılar için, bkz. Veri olarak yüklenen ortama erişme. Metin alanında <img> etiketini kullanarak SWF dosyalarını ve görüntüleri yüklemeAşağıdaki kodda olduğu gibi, <img> etiketini kullanarak bir metin alanına SWF dosyaları ve bitmapler yükleyebilirsiniz: <img src = 'filename.jpg' id = 'instanceName' > Aşağıdaki kodda olduğu gibi, TextField örneğinin getImageReference() yöntemini kullanarak bu şekilde yüklenen içeriğe erişebilirsiniz: var loadedObject:DisplayObject = myTextField.getImageReference('instanceName'); Ancak, bu şekilde yüklenen SWF dosyalarının ve görüntülerin, kaynaklarına karşılık gelen sanal alana yerleştirildiğini unutmayın. Bir metin alanında <img> etiketini kullanarak görüntü dosyası eklediğinizde, görüntüdeki verilere erişilmesine, bir URL ilke dosyası tarafından izin verilir. Aşağıdaki kodda olduğu gibi, <img> etiketine bir checkPolicyFile niteliği ekleyerek ilke dosyasını kontrol edebilirsiniz: <img src = 'filename.jpg' checkPolicyFile = 'true' id = 'instanceName' > Bir metin alanında <img> etiketini kullanarak SWF dosyası yüklediğinizde, Security.allowDomain() yöntemine yapılan bir çağrıyla, o SWF dosyasının verilerine erişilmesine izin verebilirsiniz. Harici bir dosya yüklemek için (SWF dosyanızda gömülü bir Bitmap sınıfını kullanmanın aksine) bir metin alanında <img> etiketini kullandığınızda, TextField nesnesinin alt öğesi olarak otomatik şekilde bir Loader nesnesi oluşturulur ve dosya yüklemek için ActionScript'te bir Loader nesnesini kullanmışsınız gibi o Loader nesnesine harici dosya yüklenir. Bu durumda, getImageReference() yöntemi, otomatik olarak oluşturulan Loader nesnesini döndürür. Bu Loader nesnesi, çağıran kodla aynı güvenlik sanal alanında bulunduğundan, bu Loader nesnesine erişmek için güvenlik denetimi gerekmez. Ancak, yüklenen ortama erişmek için Loader nesnesinin content özelliğine başvurduğunuzda güvenlik kuralları geçerli olur. İçerik bir görüntü olursa, bir URL ilke dosyası uygulamanız gerekir ve içerik bir SWF dosyası olursa SWF dosyasındaki kodun allowDomain() yöntemini çağırmasını sağlamanız gerekir. Adobe AIRUygulama sanal alanında bir metin alanındaki <img> etiketleri, olta saldırılarını önlemek amacıyla göz ardı edilir. Ayrıca, uygulamanın sanal alanında yürütülen kod, Güvenlik allowDomain() yönteminin çağırılmasına izin vermez. RTMP sunucuları kullanılarak teslim edilen içerikFlash Media Server, veri, ses ve video sunmak için Real-Time Media Protocol (RTMP) kullanır. NetConnection sınıfının connect() yöntemini kullanıp bir RTMP URL’sini parametre olarak ileterek bu medyayı yükleyebilirsiniz. Flash Media Server, istekte bulunan dosyanın etki alanını esas alarak bağlantıları kısıtlayabilir ve içeriğin indirilmesini önleyebilir. Ayrıntılar için, çevrimiçi Flash Media Server belgelerine www.adobe.com/go/learn_fms_docs_tr adresinden bakın. RTMP akışlarından çalışma zamanı grafikleri ve ses verileri elde etmek amacıyla BitmapData.draw() ve SoundMixer.computeSpectrum() yöntemlerini kullanmak için, sunucuya erişime izin vermek zorundasınız. Flash Media Server’daki belli dizinlere erişime izin vermek için Sunucu-Tarafı ActionScript Client.videoSampleAccess ve Client.audioSampleAccess özelliklerini kullanın. Daha fazla bilgi için bkz. Adobe® Flash® Professional CS5 için ActionScript® 3.0 Başvurusu. |
|