• 27-11-2017, 10:58:44
    #1
    Kim Milyoner olmak ister oyunu var elimde okulda kullanmak üzere düzenleme yapmaya çalışıyorum. Bi kodu nasıl değiştirmem gerektiğini bulamadım. Yardımcı olursanız sevinirim.
    Burada Sorular.txt den veri çekiyor sanırım.
     {
                System.useCodePage = true;
                loader = new URLLoader();
                loader.dataFormat = URLLoaderDataFormat.VARIABLES;
                loader.load(new URLRequest("Sorular.txt"));
                loader.addEventListener(Event.COMPLETE, textLoad);
                SoundMixer.stopAll();
                sesyenisoru = new Yeni();
                sesyenisoru.play();
                zaman1 = new Timer(29000, 1);
                zaman1.addEventListener(TimerEvent.TIMER, zamanfonk1);
                zaman1.start();
                sure1.sur1.addEventListener(MouseEvent.CLICK, su1);
                karar.evvet.addEventListener(MouseEvent.CLICK, Evet1);
                seyi1.addEventListener(MouseEvent.CLICK, se1);
                seyircijoker1.seytamam.addEventListener(MouseEvent.CLICK, setamam1);
                elli1.addEventListener(MouseEvent.CLICK, ell1);
                tele1.addEventListener(MouseEvent.CLICK, te1);
                tel1.tamam.addEventListener(MouseEvent.CLICK, tamam1);
                karar.hayir.addEventListener(MouseEvent.CLICK, Hayir1);
                yanlis.bas1.addEventListener(MouseEvent.CLICK, basadon1);
                dogru.cekil1.addEventListener(MouseEvent.CLICK, cek1);
                dogru.devam1.addEventListener(MouseEvent.CLICK, dev1);
                A1.addEventListener(MouseEvent.CLICK, CVPA1);
                B1.addEventListener(MouseEvent.CLICK, CVPB1);
                C1.addEventListener(MouseEvent.CLICK, CVPC1);
                D1.addEventListener(MouseEvent.CLICK, CVPD1);
                return;
            }
    Burasıda textload diye tanımladığı yer.
     public function textLoad(event:Event)
            {
                soru_1.text = event.target.data.SORU1;
                a_1.text = event.target.data.ASIK1;
                b_1.text = event.target.data.BSIK1;
                c_1.text = event.target.data.CSIK1;
                d_1.text = event.target.data.DSIK1;
                cevap_1.text = event.target.data.CEVAP1;
                return;
            }
    Bu kod ile Sorular.txt dosyasında ki 1. soruyu çekiyor . Ancak ben o dosyadan rastegele bir soru çeksin istiyorum.

    Buda sorular.txt içeriği.
    &SORU1=1 Buraya Soru Gelecek
    &ASIK1=Cevap1
    &BSIK1=Cevap2
    &CSIK1=Cevap3
    &DSIK1=Cevap4
    &CEVAP1=A
    Yardım alabilirsem çok sevinicem

    Ekleme :
    Her seviye soru içi farklı bir txt dosyası oluşturulabilir. Sadece şunu rsatgele çeksek sanırım istediğim şeyi yapabilirim.
    loader.addEventListener(Event.COMPLETE, textLoad);
    textLoad, textLoad1 ...... textLoad14
    Bunlardan rastgele birini çeksek kafi.



    Kodun tamamı bu şekilde..
    http://s4.dosya.tc/server5/qj3xdv/kod.txt.html
  • 27-11-2017, 23:01:33
    #2
    Aslında sorular.txt yerine sorular1, sorular2 şeklinde random dosya bile çekse işini görecektir.
  • 28-11-2017, 10:09:30
    #3
    ebubekir adlı üyeden alıntı: mesajı görüntüle
    Aslında sorular.txt yerine sorular1, sorular2 şeklinde random dosya bile çekse işini görecektir.
    evet. Hala çözemedik
  • 28-11-2017, 20:29:58
    #4
    Kodu inceledim, kodu yazan kişi her soruda aynı dosyayı(sorular.txt) tekrardan yükleyip içerisinden ilgili sorunun bilgilerini seçiyor. Kodun belki de %90'ı gereksiz kod.

    Bu kod anladığım kadarıyla swf to fla tarzı bir programla oluşturulmuş. Biraz angarya bir iş olur bu kodu istediğin şekilde düzeltmek. Baştan düzgün kodlanılsa çok rahat değiştirilebilirdi ama. Şu an yapman gereken bütün textLoad1, textLoad2, textLoad3... fonksiyonları içerisinde değişiklik yapmak. Öncelikle üstte değişkenlerin altında soruDizisi diye bir array oluşturman gerekiyor.
    private var soruDizi=[];

    Sonrasında frame1 fonksiyonu içerisinde en üstte alttaki kodu eklersin:
    for(var i:int=1;i<=10;i++){///buradaki 10 toplam soru sayısı
    soruDizi.push(i);
    }
    Sonrasında bütün textLoad fonksiyonlarını değiştirmen gerekiyor. Mesela birinci ve ikinci için:
    public function textLoad(event:Event)
           {
               var soruNo=soruDizi[Math.floor(soruDizi.length()*Math.random())];
              soruDizi.splice(soruNo,1);
               soru_1.text = event.target.data["SORU"+soruNo];
               a_1.text = event.target.data["ASIK"+soruNo];
               b_1.text = event.target.data.["BSIK"+soruNo];
               c_1.text = event.target.data.["CSIK"+soruNo];
               d_1.text = event.target.data.["DSIK"+soruNo];
               cevap_1.text = event.target.data["CEVAP"+soruNo];
               return;
           }
     
    public function textLoad2(event:Event)
           {
              var soruNo=soruDizi[Math.floor(soruDizi.length()*Math.random())];
              soruDizi.splice(soruNo,1);
               soru_2.text = event.target.data["SORU"+soruNo];
               a_2.text = event.target.data["ASIK"+soruNo];
               b_2.text = event.target.data.["BSIK"+soruNo];
               c_2.text = event.target.data.["CSIK"+soruNo];
               d_2.text = event.target.data.["DSIK"+soruNo];
               cevap_2.text = event.target.data["CEVAP"+soruNo];
               return;
           }
    Bu şekilde her bir textLoad için numarasına göre yapılması gerekiyor. Biraz düzgün kodlanmış olsaydı daha rahat yapılabilirdi. Elinizde orjinal fla olarak varsa onun üzerinde düzenleme yapmak daha kolay olur ama swf to fla şeklinde oluşturulmuşsa düzeltmek biraz zor. As3'te ["SORU"+soruNo] şeklinde erişiliyor muydu tam hatırlamıyorum, ilk bir tanesini yapıp bi denersin. Boş yere bütün fonksiyonları değiştirmekle uğraşma.

    Şu anki haliyle soru bitene kadar her adımda farklı soru çıkması gerekiyor.
  • 29-11-2017, 00:24:52
    #5
    mapacarta adlı üyeden alıntı: mesajı görüntüle
    Kodu inceledim, kodu yazan kişi her soruda aynı dosyayı(sorular.txt) tekrardan yükleyip içerisinden ilgili sorunun bilgilerini seçiyor. Kodun belki de %90'ı gereksiz kod.

    Bu kod anladığım kadarıyla swf to fla tarzı bir programla oluşturulmuş. Biraz angarya bir iş olur bu kodu istediğin şekilde düzeltmek. Baştan düzgün kodlanılsa çok rahat değiştirilebilirdi ama. Şu an yapman gereken bütün textLoad1, textLoad2, textLoad3... fonksiyonları içerisinde değişiklik yapmak. Öncelikle üstte değişkenlerin altında soruDizisi diye bir array oluşturman gerekiyor.
    private var soruDizi=[];

    Sonrasında frame1 fonksiyonu içerisinde en üstte alttaki kodu eklersin:
    for(var i:int=1;i<=10;i++){///buradaki 10 toplam soru sayısı
    soruDizi.push(i);
    }
    Sonrasında bütün textLoad fonksiyonlarını değiştirmen gerekiyor. Mesela birinci ve ikinci için:
    public function textLoad(event:Event) { var soruNo=soruDizi[Math.floor(soruDizi.length()*Math.random())]; soruDizi.splice(soruNo,1); soru_1.text = event.target.data["SORU"+soruNo]; a_1.text = event.target.data["ASIK"+soruNo]; b_1.text = event.target.data.["BSIK"+soruNo]; c_1.text = event.target.data.["CSIK"+soruNo]; d_1.text = event.target.data.["DSIK"+soruNo]; cevap_1.text = event.target.data["CEVAP"+soruNo]; return; } public function textLoad2(event:Event) { var soruNo=soruDizi[Math.floor(soruDizi.length()*Math.random())]; soruDizi.splice(soruNo,1); soru_2.text = event.target.data["SORU"+soruNo]; a_2.text = event.target.data["ASIK"+soruNo]; b_2.text = event.target.data.["BSIK"+soruNo]; c_2.text = event.target.data.["CSIK"+soruNo]; d_2.text = event.target.data.["DSIK"+soruNo]; cevap_2.text = event.target.data["CEVAP"+soruNo]; return; }
    Bu şekilde her bir textLoad için numarasına göre yapılması gerekiyor. Biraz düzgün kodlanmış olsaydı daha rahat yapılabilirdi. Elinizde orjinal fla olarak varsa onun üzerinde düzenleme yapmak daha kolay olur ama swf to fla şeklinde oluşturulmuşsa düzeltmek biraz zor. As3'te ["SORU"+soruNo] şeklinde erişiliyor muydu tam hatırlamıyorum, ilk bir tanesini yapıp bi denersin. Boş yere bütün fonksiyonları değiştirmekle uğraşma.

    Şu anki haliyle soru bitene kadar her adımda farklı soru çıkması gerekiyor.
    b_1.text = event.target.data.["BSIK"+soruNo]
    Bu kodların olduğu satırlar hata veriyor hocam.
  • 29-11-2017, 17:56:33
    #6
    medkir adlı üyeden alıntı: mesajı görüntüle
    b_1.text = event.target.data.["BSIK"+soruNo]
    Bu kodların olduğu satırlar hata veriyor hocam.
    Köşeli parantezden önce nokta olmayacak, kopyalarken silmeyi unutmuşum.
    b_1.text = event.target.data["BSIK"+soruNo] şeklinde olması gerekiyor.
    CSIK, DSIK ta da nokta kalmış, onların da silinmesi gerekiyor.
  • 29-11-2017, 20:28:15
    #7
    mapacarta adlı üyeden alıntı: mesajı görüntüle
    Köşeli parantezden önce nokta olmayacak, kopyalarken silmeyi unutmuşum.
    b_1.text = event.target.data["BSIK"+soruNo] şeklinde olması gerekiyor.
    CSIK, DSIK ta da nokta kalmış, onların da silinmesi gerekiyor.
    çok oldum ama
    TypeError: Error #2007: Parameter text must be non-null.
        at flash.text::TextField/set text()
        at Untitled_fla::MainTimeline/textLoadh()
        at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunction()
        at flash.events::EventDispatcher/dispatchEvent()
        at flash.net::URLLoader/flash.net:URLLoader::onComplete()
    TypeError: Error #1006: value is not a function.
        at Untitled_fla::MainTimeline/textLoad()
        at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunction()
        at flash.events::EventDispatcher/dispatchEvent()
        at flash.net::URLLoader/flash.net:URLLoader::onComplete()
    TypeError: Error #2007: Parameter text must be non-null.
        at flash.text::TextField/set text()
        at Untitled_fla::MainTimeline/textLoadh()
        at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunction()
        at flash.events::EventDispatcher/dispatchEvent()
        at flash.net::URLLoader/flash.net:URLLoader::onComplete()
    TypeError: Error #1006: value is not a function.
        at Untitled_fla::MainTimeline/textLoad()
        at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunction()
        at flash.events::EventDispatcher/dispatchEvent()
        at flash.net::URLLoader/flash.net:URLLoader::onComplete()
    Şu hatayı alıyorum. Hocam en iyisi siz bunu ücretli yapın bana. Yardım istemeye yüzüm kalmadı çünkü.
  • 30-11-2017, 21:50:05
    #8
    Muhtemelen isimlendirmede falan bir problem oluyordur. Fla, as vs. dosyaları gönderebilirsen bi bakıyım.

    omergunduz123@hotmail.com adresine gönderebilirsin.
  • 01-12-2017, 00:18:38
    #9
    mapacarta adlı üyeden alıntı: mesajı görüntüle
    Muhtemelen isimlendirmede falan bir problem oluyordur. Fla, as vs. dosyaları gönderebilirsen bi bakıyım.

    omergunduz123@hotmail.com adresine gönderebilirsin.
    mail attım hocam.