HTML sayfasında ActionScript kütüphaneleri kullanma
Adobe AIR 1.0 ve üstü
AIR, sayfanın ActionScript sınıflarını derlenmiş bir SWF dosyasına yükleyebilmesi için HTML komut dosyası öğesini genişletir. Kök uygulama klasörünün lib alt dizininde yer alan myClasses.swf adlı kitaplığı içe aktarmak için HTML dosyasında yer alan aşağıdaki komut dosyasını dahil edin:
<script src="lib/myClasses.swf" type="application/x-shockwave-flash"></script>
Önemli: Kitaplığın düzgün biçimde yüklenmesi için tür niteliği type="application/x-shockwave-flash" olmalıdır.
SWF içeriği Flash Player 10 veya AIR 1.5 olarak derlendiyse, uygulama açıklayıcı dosyasının XML ad alanını AIR 1.5 ad alanına ayarlamanız gerekir.
AIR dosyası paketlendiğinde lib dizini ve myClasses.swf dosyası da dahil edilmelidir.
İçe aktarılan sınıflara JavaScript Window nesnesinin runtime özelliği aracılığıyla erişin:
var libraryObject = new window.runtime.LibraryClass();
SWF dosyasındaki sınıflar paketler halinde düzenlenmişse, paket adını da eklemelisiniz. Örneğin, LibraryClass tanımı utilities adlı paketteyse, aşağıdaki ifadeyi içeren sınıf örneğini oluşturursunuz:
var libraryObject = new window.runtime.utilities.LibraryClass();
Not: ActionScript SWF kitaplığını AIR'de yer alan bir HTML sayfasının parçası olarak kullanmak üzere derlemek için acompc derleyicisini kullanın. Acompc yardımcı programı, Flex SDK'nin parçasıdır ve Flex SDK belgesinde açıklanmıştır.
HTML DOM ve JavaScript nesnelerine içe aktarılan bir ActionScript dosyasından erişme
<script> etiketi kullanılarak sayfaya aktarılmış bir SWF dosyasındaki ActionScript'ten HTML sayfasındaki nesnelere erişmek için, window veya document gibi bir JavaScript nesnesine ilişkin başvuruyu ActionScript kodunda tanımlanan bir işleve iletin. JavaScript nesnesine (veya iletilen başvuru aracılığıyla erişilebilen diğer nesnelere) erişmek için işlevdeki başvuruyu kullanın.
Örneğin, aşağıdaki HTML sayfasına bakın:
<html>
<script src="ASLibrary.swf" type="application/x-shockwave-flash"></script>
<script>
num = 254;
function getStatus() {
return "OK.";
}
function runASFunction(window){
var obj = new runtime.ASClass();
obj.accessDOM(window);
}
</script>
<body onload="runASFunction">
<p id="p1">Body text.</p>
</body>
</html>
Bu basit HTML sayfası num adlı bir JavaScript değişkeni ve getStatus() adlı bir JavaScript işlevi içerir. Bunların her ikisi de sayfanın window nesnesinin özellikleridir. Ayrıca, window.document nesnesi (p1 kimliğiyle) adlandırılan bir P öğesi içerir.
Sayfa, ASClass sınıfını içeren “ASLibrary.swf” adlı ActionScript dosyasını yükler. ASClass, bu JavaScript nesnelerinin değerlerini izleyen accessDOM() adlı bir işlev tanımlar. accessDOM() yöntemi JavaScript Window nesnesini argüman olarak alır. Window başvurusunu kullanarak, aşağıdaki tanımda gösterildiği şekilde değişkenler, işlevler ve DOM öğeleri dahil sayfadaki diğer nesnelere erişebilir:
public class ASClass{
public function accessDOM(window:*):void {
trace(window.num); // 254
trace(window.document.getElementById("p1").innerHTML); // Body text..
trace(window.getStatus()); // OK.
}
}
İçe aktarılan ActionScript sınıfından HTML sayfasının özelliklerini getirebilir ve ayarlayabilirsiniz. Örneğin, aşağıdaki işlev sayfadaki p1 öğesinin içeriğini ayarlar ve foo JavaScript değişkeninin değerini belirler:
public function modifyDOM(window:*):void {
window.document.getElementById("p1").innerHTML = "Bye";
window.foo = 66;