2011-03-23 12 views
6

ActionScript'in, birden çok temel türden oluşan, güçlü bir şekilde yazılmış bir listeyi kullanma yöntemi var mı?ActionScript'te (Vector <T,T>) birden çok temel türle yazılmış bir koleksiyon yazdınız mı?

Aslında bir Vector<T,T> gibi bir şey mi arıyorsunuz?

Mümkün mü?

Veya bunu yapmanın tek yolu, kabul eden kendi sınıfımın oluşturulmasını String ve Number yapıcıda söyleyebilmeniz ve bu sınıftan Vector<T> oluşturulmasını sağlıyor mu?

cevap

1

Hayır, standart olarak değil. Öğeler, ilkel türlerden biri değilse, bir Arabirimler Vektörü veya süper sınıflar oluşturabilirsiniz. Örneğin, bir MovieClips ve Sprite (her ikisi de DisplayObject öğesinden miras) karışımını içeren DisplayObjects vektörü. Örneğin

: vektörleri madde, sadece vektör tip kök özellikleri ve kendisi yöntemleri göstermek bu durumda

var v:Vector.<DisplayObject> = new <DisplayObject>[ 
    new MovieClip(), 
    new Sprite(), 
    new MovieClip() 
]; 

trace(v[0].alpha); // outputs 1 
trace(v[0].currentFrame); // error - not a DisplayObject property 

. Ama bu tam olarak vektörleri kullanmanızın gerekçesidir, işlediğiniz eşya türünü sağlar.

Özel durumunuzu veya hedefinizi bilmiyorum, ancak neden bir vektör içinde karışık türlere gereksiniminiz olduğunu düşünürdüm. Alternatif seçeneğiniz, belirttiğiniz gibi, bir sarmalayıcı sınıfı oluşturmak olacaktır. Aşağıdaki örnek tamamlanmış olmaktan çok bir başlangıç ​​noktasıdır.

class Wrapper { 
    public var _value:*; // should be private with get/set's 

    public function Wrapper(value:*) { 
     if(value is String || value is Number) { 
      _value = value; 
     } 
    } 
} 
0

Bunu yapamazsın, bu yüzden iki özelliklerini içeren özel bir sınıf oluşturmak için Öneriniz ile gider (Sayı, String söylemek) ve bunun bir Vector oluşturun.