2009-09-03 19 views
7

'da bir arabirimi uygulayıp uygulamadığını bir dizinin koleksiyonunun addItem() işlevini geçersiz kıldığımı nasıl anlarım ve eklenen öğenin belirli bir arabirimi uygulayıp uygulamadığını belirlemek istiyorum.Bir örneğin ActionScript 3.0

Daha önce sınıf türünü algılamak için is işlecini kullandım, ancak şimdi sınıflar için bir arabirim kullanıyorum, nesnenin arabirimi uygulayıp uygulamadığını görmek için test etmeyi tercih ediyorum.

Yalnızca nesneyi arabirim olarak kullanmayı ve null olup olmadığını görmeyi deneyebilirim. Bunu yapmanın en iyi yolu bu mu?

Yalnızca, yalnızca arabirim türündeki nesneleri kabul eden yeni bir addFunction() oluşturabilirim.

cevap

13

Bir arabirimi test etmek için 'un olduğunu kullanabilirsiniz.

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo" minWidth="1024" minHeight="768" creationComplete="application1_creationCompleteHandler(event)"> 
    <fx:Script> 
     <![CDATA[ 
      import mx.events.FlexEvent; 
      public var test:TestInterface = new TestInterface() //implements ITestInterface 


      protected function application1_creationCompleteHandler(event:FlexEvent):void 
      { 
       trace(test is ITestInterface); //true 
      } 

     ]]> 
    </fx:Script> 
</s:Application> 
+0

Teşekkürler Joel, oldukça tembel davrandım, ancak çalışmış bir şey bulmaktan ziyade kötü bir uygulama yapmaktan ziyade, doğru yolu bilmek istedim. – robmcm

+0

İyi seçim! Başlığın sonuna "AS3" ekleyebilir misiniz? –

3

Joel verilen yanıta eklemek için: arayüzleri hakkında daha fazla bilgi istiyorsanız sınıfının uyguladığı (ve alt sınıfları, ebeveyn sınıfları, vb), AS3Commons kütüphane kolaylık numarası olan bir ClassUtils sınıf vardır yöntemleri.