Avatar billede flashlite Nybegynder
18. juni 2008 - 09:42 Der er 1 kommentar og
1 løsning

variabler mellem Classes as3

Så blev det attert tid til at tage fat på as3, nu vil jeg gerne over i noget oop, men har lidt svært ved helt at forstå det. Jeg har lavet et lille noob eksemble så det burde være nemmere komme i gang.

FLV filen har en DocumentClass ’ Noob’ (dette er en form for stage setup)
Kode:
package {
    import Container.NoobContainer;
    import EventHandler.NoobEvent;

    import flash.events.*;
    import flash.display.*;

    public class Noob extends MovieClip {
        public var container:NoobContainer = new NoobContainer;
        public var eventhandler:NoobEvent = new NoobEvent;
        private var size:Array;
        private var color:Array;
       
        public function Noob() {
            trace('starts setUp');
            //container1
            color=new Array(0x000000,1);
            size=new Array(0,0,200,200);
            var container1:MovieClip=new MovieClip  ;
            addChild(container.build(container1,size,color));

            //container2
            color=new Array(0x218FBB,1);
            size=new Array(50,50,100,100);
            var container2:MovieClip=new MovieClip;
            container2.addChild(container.build(container2,size,color));
            container2.addEventListener(MouseEvent.MOUSE_OVER, eventhandler.ui_on);
            container2.addEventListener(MouseEvent.MOUSE_OUT, eventhandler.ui_off);
        }
    }
}

Her definere jeg 2 elementer jeg gerne vil lege lidt med.

NoobContainer koden: (ligger i en mappe Container)
package Container{
    import flash.display.MovieClip;
    import flash.events.*;

    public class NoobContainer{
        public function build(mc:MovieClip, size:Array, color:Array) {
            trace(mc)
            mc.graphics.beginFill(color[0],color[1]);
            mc.graphics.drawRect(size[0],size[1],size[2],size[3]);
            mc.graphics.endFill();
            return mc;
        }
    }
}

Sidst men ikke mindst har jeg en Listner Classe:
NoobEvent Kode: (ligger i mappen EventHandler)
package EventHandler{
    import flash.events.*;
    import flash.display.MovieClip;
   
    public class NoobEvent extends MovieClip{
        public var NoobAwnser:String;
       
        public function ui_on(e:Event) {
            trace('over‘);
            container2.visible = false; // Det her virker ikke
        }
        public function ui_off(e:Event) {
            trace('out');
            container2.visible = true; // Det her virker ikke
        }
    }
}

Som I kan se er det bare en hurtig skabelon for at skabe lidt logik i det her as3 oop for mig, og forhåbenligt andre.

Det jeg gerne vil vide er hvordan jeg evt styre de elementer jeg laver, tror det er noget med Sprits men det vil jeg lade jer eksperter vudere:

En lille sidste ting jeg også gerne vil vide lidt om er evt hvor dan man passer variabler videre (får tilgang til det/de Arrays jeg vil lave i den) hvis jeg nu også laver en XMLimport Classe hvor jeg skal bruge


/flashlite
Avatar billede flashlite Nybegynder
18. juni 2008 - 09:46 #1
Hov der er en felj i Noob.as Linie 26, skal ikek stå "container2.addChild(container.build(container2,size,color));" men bare "addChild(container.build(container2,size,color));" dette var et af mine spæde forsøg...

/flashlite
Avatar billede flashlite Nybegynder
18. juni 2008 - 16:53 #2
Okay fandt frem til at e.currentTarget.visible = false; løser den første del af det, så tror bare jeg sætter mig til at lege lidt med det igen i weekenden.
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