Avatar billede donslund Nybegynder
21. oktober 2009 - 19:43 Der er 9 kommentarer og
1 løsning

Hvor henvises der til ekstern Main.as

Nu skal det være. Jeg skal i gang med AS3. Jeg har fikset noget kode som jeg har smidt i en Main.as fil, men hvor i min fla skal jeg henvise til den?
Det må være under Properties et sted, men hvor?

Eller måske der er et sted hvor man kan lære disse ting fra bunden?
Avatar billede maqhem Nybegynder
21. oktober 2009 - 20:13 #1
Det kommer hel an på, hvordan din as-fil skal fungere. Er det en klasse? Så bare læg den i samme mappe og lav en instans direkte i dit AS i Flash-filen.
Avatar billede donslund Nybegynder
21. oktober 2009 - 20:32 #2
Ja se, det er nok det den skal. Det kode jeg har fundet som jeg vil arbejde videre fra er dette:

package
{
    import flash.display.Sprite;
    import flash.text.TextField;
   
    public class Starter_1 extends Sprite
    {
          private var tField:TextField;
          public function Starter_1 ()
          {
                  myTest();
          }
          private function myTest():void
          {
                  tField = new TextField();
                  tField.autoSize = "left";
                  tField.background = true;
                  tField.border = true;
                  tField.x = 20;
                  tField.y = 75;
                  tField.text = "Hello You, what is your name?";
                  addChild(tField);
          }
    }
}

Men hvordan laver man en instans direkte i ActionScripten? Ovenstående kode burde virke direkte. men fla'en skal vel vide at den skal benytte det.
Avatar billede maqhem Nybegynder
21. oktober 2009 - 20:58 #3
Bare skriv:

var DinInstans:Starter_1 = new Starter_1();
addChild(DinInstans);

Et voilà.
Avatar billede donslund Nybegynder
21. oktober 2009 - 21:19 #4
Ja, da jeg fik navngivet .as filen det samme som classen, så spillede det. Smid et svar
Avatar billede maqhem Nybegynder
21. oktober 2009 - 22:04 #5
Åh ja, det glemte jeg at sige. Nåh, ja, du fandt ud af det. Held og lykke med det :)
Avatar billede donslund Nybegynder
21. oktober 2009 - 22:20 #6
Et hurtigt tillæg. Kan du se hvorfor dette ikke giver noget output? Ikke engang trace-linierne kommer.
Målet er at loade noget xml der indeholder filnavne på nogle jpg's der skal vises.

package
{
    import flash.display.Sprite;
    import flash.display.Loader;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.net.URLLoader;
    import flash.net.URLRequestMethod;
    import flash.net.URLRequest;

   
    public class Starter_1 extends Sprite
    {
        var xmlLoader:URLLoader;
        var xmlData:XML;
        var i:int;
        var tileLoader:Loader;
        var urlRequest:URLRequest;
       
        public function XMLLoader ():void
        {
            var xmlLoader:URLLoader = new URLLoader();
            xmlLoader.addEventListener(Event.COMPLETE, showXML);
            xmlLoader.load(new URLRequest("http://www.hoegh-soerensen.dk/fileadmin/templates/php-filer/topfrisexml.php"));
           
            function showXML(e:Event):void {
                trace("show xml");
                XML.ignoreWhitespace = true;
                var pics:XML = new XML(e.target.data);
                trace(pics.pic.length());
                var i:Number;
                for (i=0; i < pics.pic.length(); i++) {
                    trace("File: "+ pics.pic[i].text());
                }
            }
        }
    }
}
Avatar billede maqhem Nybegynder
21. oktober 2009 - 22:35 #7
Det er ikke så svært. Du kalder aldrig din funktion XMLLoader():

S.XMLLoader();

Desuden mangler du en constructor. Flash laver den selv, når den ikke er der, men det er god kutyme at have den med:

public function Starter():void {
}
Avatar billede donslund Nybegynder
21. oktober 2009 - 22:45 #8
Ja, kald mig bare dum, men er det i as-filen eller i fla-filen du vil kalde S.XMLLoader(); ?

Gør jeg det i as-filen melder den Access of undefined property S.

Og det med constructoren skal jeg vist ud og læse mere om.
Avatar billede maqhem Nybegynder
21. oktober 2009 - 23:46 #9
Nej jeg vil da ikke kalde dig dum. Og nej, det er ikke i klassen, du skal kalde S.XMLLoader. Hvor er S defineret henne? Ja, jeg tog forgivet, at det var navnet på din instans i fla-filen. Det er det nok ikke, så du skal erstatte S med det navn, du har i fla-filen. Eller du kan kalde XMLLoader(); i din constructor:

public function Starter():void {
    S.XMLLoader();
}
Avatar billede donslund Nybegynder
22. oktober 2009 - 08:37 #10
Den kan stadig ikke finde S, men jeg fandt ud af det i fla-filen.

var DinInstans:Starter_1 = new Starter_1();
DinInstans.XMLLoader();
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester