Harici bir SWF dosyasını yükleme

Flash Player 9 ve üstü, Adobe AIR 1.0 ve üstü

ActionScript 3.0'da, SWF dosyaları Loader sınıfı kullanılarak yüklenir. Harici bir SWF dosyasını yüklemek için, ActionScript uygulamanızın dört şey yapması gerekir:

  1. Dosyanın url'si ile yeni bir URLRequest nesnesi oluşturma.

  2. Yeni bir Loader nesnesi oluşturma.

  3. Loader nesnesinin load() yöntemini çağırıp URLRequest örneğini parametre olarak iletme.

  4. Loader örneğini görüntüleme listesine eklemek için, görüntüleme nesnesi konteynerinde (örn. bir Flash belgesinin ana zaman çizelgesinde) addChild() yöntemini çağırma.

Sonuç olarak kod şöyle görünür:

var request:URLRequest = new URLRequest("http://www.[yourdomain].com/externalSwf.swf"); 
var loader:Loader = new Loader() 
loader.load(request); 
addChild(loader);

Bu aynı kod, SWF dosyasının url'si yerine görüntü dosyasının url'si belirtilerek JPEG, GIF veya PNG görüntüsü gibi harici bir görüntü dosyasını yüklemek için kullanılabilir. Görüntü dosyasından farklı olarak bir SWF dosyası ActionScript içerebilir. Bu nedenle, SWF dosyası yükleme işlemi görüntü yükleme işlemiyle aynı gibi görünse de, Flash Player veya AIR uygulaması SWF dosyasını oynatıyorsa ve harici SWF dosyasıyla bir şekilde iletişim kurmak için ActionScript kullanmayı planlıyorsanız, harici bir SWF dosyası yüklenirken hem yüklemeyi yapan SWF dosyası hem de yüklenen SWF dosyasının aynı güvenlik sanal alanında bulunması gerekir. Ayrıca, harici SWF dosyası, yükleyen SWF dosyasındaki sınıflarla aynı ad alanını paylaşan sınıflar içeriyorsa, ad alanı çakışmalarını önlemek için, yüklenen SWF dosyası için yeni bir uygulama etki alanı oluşturmanız gerekir. Güvenlik ve uygulama etki alanı konularıyla ilgili daha fazla bilgi için bkz. Uygulama etki alanlarıyla çalışma ve İçerik yükleme .

Harici bir SWF dosyası başarıyla yüklendiğinde, Loader.content özelliği üzerinden bu dosyaya erişilebilir. Harici SWF dosyası ActionScript 3.0 için yayınlanırsa, hangi sınıfı genişlettiğine bağlı olarak bu bir film klibi veya hareketli grafik olur.

Diğer platformlarla karşılaştırıldığında, Adobe AIR for iOS'ta SWF dosyasını yükleme ile ilgili birkaç farklılık vardır. Daha fazla bilgi için bkz. AIR for iOS'ta SWF dosyalarını yükleme .

Eski bir SWF dosyası yüklenirken dikkat edilmesi gereken noktalar

Harici bir SWF dosyası eski bir ActionScript sürümüyle yayınlanmışsa, dikkat edilmesi gereken önemli sınırlamalar vardır. AVM2'de (ActionScript Virtual Machine 2) çalışan bir ActionScript 3.0 SWF dosyasından farklı olarak, ActionScript 1.0 veya 2.0 için yayınlanmış bir SWF dosyası AVM1'de (ActionScript Virtual Machine 1) çalışır.

Bir ActionScript 3.0 dosyasına bir ActionScript 1.0 veya 2.0 SWF dosyası yüklerken önemli farklar vardır (bir ActionScript 3.0 SWF dosyası yüklemeyle karşılaştırıldığında). Flash Player, önceden yayınlanmış içerikle geriye doğru tam uyumluluk sağlar. Flash Player'ın önceki sürümlerinde çalışan herhangi bir içerik, ActionScript 3.0'ı destekleyen Flash Player sürümlerinde çalışır. Ancak, aşağıdaki sınırlar uygulanır:

  • ActionScript 3.0 kodu ActionScript 1.0 veya 2.0'da yazılı bir SWF dosyasını yükleyebilir. Bir ActionScript 1.0 veya 2.0 SWF dosyası başarıyla yüklendiğinde, yüklenen nesne ( Loader.content özelliği) bir AVM1Movie nesnesidir. AVM1Movie örneği, MovieClip örneğiyle aynı değildir. Bu bir görüntüleme nesnesidir ancak film klibinden farklı olarak, zaman çizelgesiyle ilgili yöntemler veya özellikler içermez. Üst AVM2 SWF dosyasının, yüklenen AVM1Movie nesnesinin özelliklerine, yöntemlerine veya nesnelerine erişimi olamaz.

  • ActionScript 1.0 veya 2.0'da yazılmış SWF dosyaları, ActionScript 3.0'da yazılmış SWF dosyalarını yükleyemez. Bu da, Flash 8 veya Flex Builder 1.5 ya da önceki sürümlerde yazılmış SWF dosyalarının ActionScript 3.0 SWF dosyalarını yükleyemediği anlamına gelir.

    Bu kuralın tek istisnası, ActionScript 2.0 SWF dosyası, düzeylerinden birine önceden herhangi bir şey yüklemediği sürece, ActionScript 2.0 SWF dosyasının bir ActionScript 3.0 SWF dosyasıyla kendisini değiştirebilmesidir. ActionScript 2.0 SWF dosyası, loadMovieNum() öğesine bir çağrı yapıp level parametresine 0 değerini ileterek bunu yapabilir.

  • Genelde, ActionScript 3.0'da yazılmış SWF dosyalarıyla birlikte çalışacaksa, ActionScript 1.0 veya 2.0'da yazılmış SWF dosyalarının alınması gerekir. Örneğin, ActionScript 2.0'ı kullanarak bir medya oynatıcısı oluşturduğunuzu varsayın. Medya oynatıcısı, ayrıca ActionScript 2.0'da oluşturulmuş çeşitli içerikleri de yükler. ActionScript 3.0'da yeni içerik oluşturup bu içeriği medya oynatıcısına yükleyemezsiniz. Video oynatıcısını ActionScript 3.0'a almanız gerekir.

    Ancak ActionScript 3.0'da bir ortam oynatıcısı oluşturursanız, bu ortam oynatıcısı ActionScript 2.0 içeriğinizin basit yüklemelerini gerçekleştirebilir.

Aşağıdaki tablolarda, önceki Flash Player sürümlerinin daha yeni içerik yüklenmesi ve kod çalıştırılmasıyla ilgili sınırlamaları ve farklı ActionScript sürümlerinde yazılmış SWF dosyaları arasında çapraz komut dosyası oluşturma sınırlamaları özetlenmektedir.

Desteklenen işlevler

Flash Player 7

Flash Player 8

Flash Player 9 ve 10

Şunlar için yayınlanmış SWF dosyalarını yükleyebilir

7 ve öncesi

8 ve öncesi

9 (veya 10) ve öncesi

Bu AVM'yi içerir

AVM1

AVM1

AVM1 ve AVM2

Şu ActionScript sürümlerinde yazılmış SWF'leri çalıştırır

1.0 ve 2.0

1.0 ve 2.0

1.0 ve 2.0 ve 3.0

Aşağıdaki tabloda yer alan “Desteklenen işlevler”, Flash Player 9 veya sonrasında çalıştırılan içerikleri ifade eder. Flash Player 8 veya öncesinde çalışan içerikler yalnızca ActionScript 1.0 ve 2.0'da yüklenebilir, görüntülenebilir, çalıştırılabilir ve bu içeriklerin çapraz komut dosyası oluşturulabilir.

Desteklenen işlevler

ActionScript 1.0 ve 2.0'da oluşturulan içerik

ActionScript 3.0'da oluşturulan içerik

Şu sürümlerde oluşturulan içerik yüklenebilir ve içerikteki kod çalıştırılabilir

yalnızca ActionScript 1.0 ve 2.0

ActionScript 1.0, 2.0 ve ActionScript 3.0

Şu sürümlerde oluşturulan içeriğin çapraz komut dosyası oluşturulabilir

yalnızca ActionScript 1.0 ve 2.0 (Yerel Bağlantı üzerinden ActionScript 3.0)

Yerel Bağlantı üzerinden ActionScript 1.0 ve 2.0

ActionScript 3.0