2010-11-18 20 views
2

Main.as içinde actionscript sınıfına sahip bir swf dosyası sample.swf dosyası var. Bu Main.as içinde kamu olarak ilan edilen çeşitli nesneler vardır. Örneğin, MyData sınıfının myData nesnesini (MyData.as içinde) düşünelim.Esnek uygulamamın swfLoader'ına yüklenen swf dosyasının içindeki actioncript işlevleri nasıl çağrılır?

Bu swf dosyasını swfLoader kullanarak AIR uygulamasında yüklüyorum. SwfLoader.loaderInfo.content kullanarak myData.func() öğesine nasıl erişebilirim bilmek istiyorum. Bunu daha önce yapmış :)

cevap

2

, bu gibi bir şey olmalıdır: myLoadHandlerEvent.INIT olay için olay işleyicisi (bütün bayt yüklendiğinde SWF'dir sonra COMPLETEINIT ateşlendiğinde, ateşlenir olduğu

function myLoadHandler(e:Event) 
{ 
    MyData(e.target.content.myDataInstance).func(); 
} 

başlatıldı ve üyelerine erişilebilir) ve myDataInstance, çocuğunuzun SWF'si içindeki MyData örneğinizin genel referansıdır.

+0

Teşekkürler @gthmb. Sadece değerli bilgilerinize eklemek için. Eğer MyData değilse (bu sınıf sadece swf'de ve esnek değilse) Object typecasting'i kullanabilirsiniz. Bu Nesneyi (swfLoader.content) .myDataInstance.func(); ve o da çalıştı. – Goje87

0

önceden

teşekkürler .... Verilerin tam yolunu hatırlayamıyorum, ancak bulmanın bir yolu da hata ayıklayıcısını esnek olarak kullanmaktır. Yükleyici için bir Event.Complete olayı ekleyin ve aradığınız tüm işlevin içinde bir kesme noktası ekleyin. Ardından, swfLoader.loaderInfo.content ifadesini ifade izleme listesine ekleyin ve aradığınızı bulmak için sondaj yapmaya başlayın. Yolu not edin ve bir test fonksiyonunda bir çağrı yapmayı deneyin. İnit işleyicisinde