Paket | Üst Düzey |
Sınıf | public dynamic class Class |
Miras Alma | Class Object |
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9, Flash Lite 4 |
new
operatörü kullanılarak çağrıldığında sınıf örnekleri oluşturur.
flash.net.getClassByAlias()
gibi bazı yöntemler Class türünün bir nesnesini döndürür. Diğer yöntemlerde flash.net.registerClassAlias()
gibi Class türünün bir parametresi bulunabilir.
Bu örneğin de gösterdiği gibi sınıf adı, Class nesnesinin başvurusudur:
class Foo { }
class Foo{}
ifadesi, Foo Class nesnesini oluşturan sınıf tanımıdır. Ayrıca new Foo()
ifadesi de yeni bir Foo sınıfı örneği oluşturur ve sonuç Foo türünde olur.
Sınıflarınızı bildirmek için class
ifadesini kullanın. Class nesneleri, aşağıdaki “Örnekler“ bölümünde gösterildiği şekilde, çalışma zamanında var olan bir örnek nesnesine sınıf atamak gibi gelişmiş teknikler için kullanışlıdır.
Bir sınıfın tüm statik özellikleri ve yöntemleri sınıfın Class nesnesinde bulunur. Class, tek başına prototype
bildirir.
Genellikle Class türünün değişkenlerini elle bildirmeniz veya oluşturmanız gerekmez. Ancak şu kodda, bir sınıf circleClass
genel Class özelliği olarak atanır ve siz de bu Class özelliğine ana Library sınıfının bir özelliği olarak başvurabilirsiniz:
package { import flash.display.Sprite; public class Library extends Sprite { public var circleClass:Class = Circle; public function Library() { } } } import flash.display.Shape; class Circle extends Shape { public function Circle(color:uint = 0xFFCC00, radius:Number = 10) { graphics.beginFill(color); graphics.drawCircle(radius, radius, radius); } }
Başka bir SWF dosyası, sonuç Library.swf dosyasını yükleyebilir ve ardından Circle türünde nesneleri başlatabilir. Şu örnek, alt SWF dosyasının varlıklarına erişim kazanmanın bir yolunu gösterir. (Diğer teknikler arasında, flash.utils.getDefnitionByName()
öğesinin kullanılması veya alt SWF dosyasının kalıntı tanımlarının içe aktarılması.)
package { import flash.display.Sprite; import flash.display.Shape; import flash.display.Loader; import flash.net.URLRequest; import flash.events.Event; public class LibaryLoader extends Sprite { public function LibaryLoader() { var ldr:Loader = new Loader(); var urlReq:URLRequest = new URLRequest("Library.swf"); ldr.load(urlReq); ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded); } private function loaded(event:Event):void { var library:Object = event.target.content; var circle:Shape = new library.circleClass(); addChild(circle); } } }
ActionScript 3.0'da, SWF dosyalarına derlenmiş harici varlıklar (örn. resimler, sesler veya fontlar) için gömülü sınıflar oluşturabilirsiniz. Önceki ActionScript sürümlerinde, MovieClip.attachMovie()
yöntemiyle bir bağlantı kimliği kullanarak bu varlıkları ilişkilendirirdiniz. ActionScript 3.0'da gömülü varlıkların her biri benzersiz bir gömülü varlık sınıfıyla temsil edilir. Bu nedenle, varlığın ilişkili sınıfını başlatmak ve o varlık üzerinde yöntemleri ve özellikleri çağırmak için new
operatörünü kullanabilirsiniz.
İlgili API Öğeleri
ClassA
veClassB
olarak iki sınıf bildirin.classToConstruct
adındaki Class türünün bir değişkenini ve bu durumdatrue
olarak ayarlanan birchooseClassA
Boolean türünü bildirin, ancak kodunuz o değişkenin değerini ayarlamak için özel bir test ifadesi kullanabilir
package { import flash.display.Sprite; public class ClassExample extends Sprite { public function ClassExample() { var classToConstruct:Class; var classInstance:Object; classToConstruct = ClassA; classInstance = new classToConstruct(); trace(classInstance); // [object ClassA] classToConstruct = ClassB; classInstance = new classToConstruct(); trace(classInstance); // [object ClassB] } } } class ClassA { } class ClassB { }
Tue Jun 12 2018, 01:09 PM Z