Veri olarak yüklenen ortama erişmeFlash Player 9 ve üstü, Adobe AIR 1.0 ve üstü Yüklü verilere erişmek için, BitmapData.draw() ve SoundMixer.computeSpectrum()yöntemlerini kullanın. Varsayılan olarak, farklı bir sanal alana yüklü medya tarafından görüntülenen veya oynatılan grafik veya ses nesnelerinden piksel verileri ya da ses verileri alamazsınız. Ancak, bu tip verilere sanal alan sınırları dahilinde erişim iznini vermek için aşağıdaki yöntemleri kullanabilirsiniz:
İlerleyen bölümlerde, bitmap, ses ve video verilerine erişilmesiyle ilgili ayrıntılar sağlanmıştır. Bitmap verilerine erişmeBitmapData nesnesinin draw() yöntemi, herhangi bir görüntüleme nesnesinin geçerli olarak görüntülenen piksellerini BitmapData nesnesine çizmenize olanak sağlar. Bunlar arasında, MovieClip nesnesinin, Bitmap nesnesinin veya herhangi bir görüntüleme nesnesinin pikselleri yer alır. draw() yönteminin BitmapData nesnesine pikselleri çizmesi için şu koşulların karşılanması gerekir:
Bu koşullar karşılanmazsa, SecurityError istisnası atılır. Loader sınıfının load() yöntemini çağırdığınızda, LoaderContext nesnesi olan bir context parametresini belirtebilirsiniz. LoaderContext nesnesinin checkPolicyFile özelliğini true değerine ayarlarsanız, Flash Player uygulaması, görüntünün yükleneceği sunucuda bir URL ilke dosyasını kontrol eder. İlke dosyası varsa ve dosya, yükleyen SWF dosyasının etki alanına izin veriyorsa, dosyanın Bitmap nesnesindeki verilere erişmesine izin verilir; aksi takdirde erişim reddedilir. Bir metin alanında <img> etiketi aracılığıyla yüklenmiş bir görüntüde checkPolicyFile özelliğini de belirtebilirsiniz. Ayrıntılar için, bkz. Metin alanında <img> etiketini kullanarak SWF dosyalarını ve görüntüleri yükleme. Ses verilerine erişmeAşağıdaki sesle ilgili ActionScript 3.0 API'leri güvenlik kısıtlamalarına sahiptir:
Her ses, kendisiyle ilişkilendirilmiş iki tür sanal alana sahiptir—içerik sanal alanı ve sahip sanal alanı:
Sound sınıfının load() yöntemini kullanarak ses yüklediğinizde, SoundLoaderContext nesnesi olan bir context parametresini belirtebilirsiniz. SoundLoaderContext nesnesinin checkPolicyFile özelliğini true değerine ayarlarsanız, çalışma zamanı sesin yüklendiği sunucuda URL ilke dosyasını kontrol eder. İlke dosyası varsa ve dosya, yükleyen kodun etki alanına izin veriyorsa, kodun, Sound nesnesinin id özelliğine erişmesine izin verilir; aksi takdirde erişim reddedilir. Ayrıca, checkPolicyFile özelliğinin ayarlanması, yüklenen sesler için SoundMixer.computeSpectrum() yöntemini etkinleştirebilir. Bir veya birkaç ses sahibinin, sanal alanı çağıran için erişilemez durumda olması nedeniyle SoundMixer.stopAll() yöntemine yapılan bir çağrının tüm sesleri durdurup durdurmayacağını öğrenmek için SoundMixer.areSoundsInaccessible() yöntemini kullanabilirsiniz. SoundMixer.stopAll() yönteminin çağrılması, sahip sanal alanı, stopAll() yöntemini çağıranın sanal alanıyla aynı olan sesleri durdurur. Bu ayrıca stopAll() yöntemini çağıran SWF dosyasının etki alanına erişim izni vermek için Security.allowDomain() yöntemini çağıran SWF dosyaları tarafından oynatımı başlatılan sesleri de durdurur. Diğer sesler durdurulmaz ve SoundMixer.areSoundsInaccessible() yöntemi çağrılarak bu seslerin varlığı ortaya çıkarılabilir. computeSpectrum() yönteminin çağrılması için, çalınan her sesin, yöntemi çağıran nesneyle aynı sanal alanda veya çağıranın sanal alanına erişim izni verilmiş bir kaynakta olması gerekir; aksi takdirde SecurityError istisnası atılır. Bir SWF dosyasındaki kütüphanede bulunan gömülü seslerden yüklenmiş sesler için, yüklenen SWF dosyasında Security.allowDomain() yöntemine yapılan bir çağrıyla izin verilir. SWF dosyaları dışındaki kaynaklardan yüklenmiş (yüklenmiş mp3 dosyalarından veya video dosyalarından gelen) sesler için, kaynak sunucudaki bir URL ilke dosyası, yüklenen ortamdaki verilere erişim izni verir. Daha fazla bilgi için bkz. Yazar (geliştirici) denetimleri ve Web sitesi denetimleri (ilke dosyaları). Ses verilerine RTMP akışlarından erişmek için, sunucuya erişime izin vermelisiniz. Flash Media Server’daki belli dizinlere erişime izin vermek için Sunucu-Tarafı ActionScript Client.audioSampleAccess özelliğini kullanın. Daha fazla bilgi için bkz. Adobe® Flash® Professional CS5 için ActionScript® 3.0 Başvurusu. Video verilerine erişmeGeçerli video karesinin piksel verilerini yakalamak için BitmapData.draw() yöntemini kullanabilirsiniz. İki farklı video türü vardır:
RTMP akışlarından çalışma zamanı grafiklerini almak amacıyla BitmapData.draw() yöntemini kullanmak için, sunucuya erişim izni vermelisiniz. Flash Media Server’daki belli dizinlere erişime izin vermek için Sunucu-Tarafı ActionScript Client.audioSampleAccess özelliğini kullanın. Daha fazla bilgi için bkz. Adobe® Flash® Professional CS5 için ActionScript® 3.0 Başvurusu. source parametresi olarak aşamalı video ile BitmapData.draw() yöntemini çağırdığınızda, BitmapData.draw() öğesini çağıranın FLV dosyasıyla aynı sanal alanda olması veya FLV dosyasının sunucusunun, çağıran SWF dosyasının etki alanına izin veren bir ilke dosyasına sahip olması gerekir. NetStream nesnesinin checkPolicyFile özelliğini true değerine ayarlayarak ilke dosyasının indirilmesini isteyebilirsiniz. |
|