İçeriğin rss beslemesi kullanımda değil Soru - Cevap Bölümü / Kategori: Programlama

02/07/2008 - 02:24:17 cevap (4) Okunma : 505 Bu yazıyı 2 kişi tuttu.

ActionScript 3 public değişken

Selamlar

AS3 ile bir TXT okuyan sınıf yazıyorum. Sınıftan timeline’a okuduğum veriyi gönderemiyorum..

Şöyleki

—- [ Read.as ] —-

    package
    {
    public class Read
        {

            public var veri:String

            public function Read()
            {
                var r:URLRequest=new URLRequest('buffer.txt');
                var loader:URLLoader=new URLLoader();
                loader.addEventListener(Event.COMPLETE,LoaderOK)
                    try 
                    {
                        loader.load(r);
                    } 
                    catch (error:Error) 
                    {
                        trace('Hata');
                    }
            }



            public function LoaderOK(e:Event):void
            {
                var loader:URLLoader=URLLoader(e.target)
                veri = loader.data

            }
        }
    }

—- [ Read.as ] —-

Timeline dan

   var oku:Read = new Read()
   trace(oku.veri)

şeklinde çağırdımda "null" şeklinde dönderiyor. Fakat read.as dosyasından

 public function LoaderOK(e:Event):void
 {
      var loader:URLLoader=URLLoader(e.target)
      veri = loader.data
      trace(veri)
}

dediğimde çalışıyor.

Nasıl bir yöntemle veriyi timeline’a taşıyabilirim ?

adres Gazing profilini göster
Yağız Gürgül 03.07.2008 02:00:25
En iyi cevap mı ?
Faydalı cevap

null dönmesinin nedeni TXT dosyası yüklenmeden veriyi alman. Bu durumda veriyi TXT dosyası yüklendikten sonra alman lazım. Yani işin içine tetikleyici giriyor.

Ben basitçe senin sınıfını düzenledim:


package {

    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.events.Event;

    public class Read {

        public var veri:String;
        public var onLoaded:Function

        public function Read(onLoaded_:Function=null) {
            onLoaded=onLoaded_
            var r:URLRequest=new URLRequest('buffer.txt');
            var loader:URLLoader=new URLLoader  ;
            loader.addEventListener(Event.COMPLETE,LoaderOK);
            try {
                loader.load(r);
            } catch (error:Error) {
                trace('Hata');
            }
        }



        public function LoaderOK(e:Event):void {
            var loader:URLLoader=URLLoader(e.target);
            veri=loader.data;
            if(onLoaded!=null) onLoaded();
        }
    }
}

Nasıl kullanıcaksın? Sınıfı oluştururken artık bir parametre var. Bu parametreye Flash içindeki fonksiyonu yazıcaksın.

Örnek Flash kodu:


var oku:Read = new Read(yuklendi);
function yuklendi() {
    trace(oku.veri);
}

Böylece sınıf TXT dosyasını yüklediğinde senin belirttiğin fonksiyonu çağıracak. Sen de rahatça veriyi alabileceksin.

Kolay gelsin…

adres ocracy profilini göster
Kerem Bekman 03.07.2008 11:33:52
En iyi cevap mı ?

Teşekkürler yağız, bu şekilde çalışıyor..

adres TUNCAYS profilini göster
Tuncay Özbal 07.07.2008 13:08:15
En iyi cevap mı ?
Faydalı cevap

Başka bir yöntem ise event oluşturmaktır. Buda iyi bir çözümdür aslında:


package {

    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.events.Event;

    public class Read {

        public var veri:String;
        public var onLoaded:Function

        public function Read() {
            onLoaded=onLoaded_
            var r:URLRequest=new URLRequest('buffer.txt');
            var loader:URLLoader=new URLLoader  ;
            loader.addEventListener(Event.COMPLETE,LoaderOK);
            try {
                loader.load(r);
            } catch (error:Error) {
                trace('Hata');
            }
        }



        public function LoaderOK(e:Event):void {
            var loader:URLLoader=URLLoader(e.target);
            veri=loader.data;
            this.dispatchEvent(new Event("Yuklendi"));
        }
    }
}

Framede kullanılacak kod:


var oku:Read=new Read();
oku.addEventListener("Yuklendi",bitti);
function bitti(e:Event):void{
   trace(oku.veri);
}
adres ocracy profilini göster
Kerem Bekman 07.07.2008 23:38:11
En iyi cevap mı ?

her iki yöntem de güzel, teşekkürler

aç-kapa Bu Yazıyı Tutanlar

yeni üyelik | şifremi unuttum

aç-kapa Yarışma 5.İstanbul Animasyon ve Görsel Efekt Kısa Film Yarışması

5.İstanbul Animasyon ve Görsel Efekt Kısa Film Yarışması

5.İstanbul Uluslararası Animasyon Festivali, 24-30 Kasım 2008 tarihleri arasında gerçekleştirilecektir. Festival dahilinde gerçekleşen 5. İstanbul Ani...
Kategori: Yarışma

aç-kapa Konferans TIME 2008 Interpro Forum Telekom, Internet, Medya, Eğlence Konferansı

TIME 2008 Interpro Forum Telekom, Internet, Medya, Eğlence Konferansı

Program 1 Aralık 2008 Pazartesi 08:00-12:00 Kayıt 10:00-10:30 Ana Oturum Türkiye’de Yeni Nesil Telekom Hizmeti Cengiz Anık – Avea, Ge...
Kategori: Konferans

aç-kapa Çalıştay Dirty99, 9. Pazarlama Zirvesi Etkinliği

Dirty99, 9. Pazarlama Zirvesi Etkinliği

Dirty99, 9. Pazarlama Zirvesi süresince 99 özel pazarlama profesyoneli ile, 99 dakikalık bir workshop çalışması! Özellikle interaktif pazarlama araçla...
Kategori: Çalıştay

aç-kapa Eğitim Türkiye'de İnternet Konferansı - Internet Teknolojileri Derneği -22-23 Aralık ODTÜ

Türkiye'de İnternet Konferansı - Internet Teknolojileri Derneği -22-23 Aralık ODTÜ

Etkin Katılım Çağrısı Türkiye’de Internet ile ilgili grupları biraraya getirerek İnternet’i tum boyutlarıyla tanıtmak, gelistirmek, tartı...
Kategori: Eğitim

aç-kapa Konferans Bilgi Güvenliği ve Kriptoloji Konferansı

Bilgi Güvenliği ve Kriptoloji Konferansı

Önemli Tarihler: Etkinlik Tarihi : 24-26 Aralık 2008 Son Bildiri Gönderme Tarihi : 20 Ekim 2008 Bildiri Kabul Tarihi Bildirimi :...
Kategori: Konferans

üyeler Son Kahramanlar...

stats Kimler Burada? web stats

Son 1 dakika içinde MMIstanbul' da 766 (0 kayıtlı, 766 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:

coldfusion mysql ubuntu
 
sponsor adobe istanbul