Objekter vi lager med denne klassen skal se omtrent slik ut:
og ha grensesnittet (det brukeren av klassen trenger å vite):
Lyssignal setRod() setRodogGul() setGul() setGronn()
Ting vi må passe på!
Lag klassen med Insert, New Symbol...
Gi klassen navnet Lyssignal både øverst i Name-feltet og i Actionscript Linkage der du haker av for Export for ActionScript.
Lag grafisk del, det vil si grønn, gul og rød sirkel, konverter dem til symboler og gi dem instance-navnene gron, gul og rod.
(Pass på å være inne i Lyssignal, ikke på øverste Scene-lag!)
I Library ser det slik ut:
Høyreklikker vi på Lyssignal i Library og velger Edit Class, kan vi legge inn denne koden, som havner i filen Lyssignal.as:
package {import flash.display.MovieClip; import fl.motion.Color; import flash.geom.ColorTransform;public class Lyssignal extends MovieClip {public function Lyssignal() { // constructor code }public function setRod() { rod.transform.colorTransform = new ColorTransform(1.0,0,0); gul.transform.colorTransform = new ColorTransform(0,0,0); gron.transform.colorTransform = new ColorTransform(0,0,0); }public function setGul() { rod.transform.colorTransform = new ColorTransform(0,0,0); gul.transform.colorTransform = new ColorTransform(1.0,1.0,0); gron.transform.colorTransform = new ColorTransform(0,0,0); }public function setGronn() { rod.transform.colorTransform = new ColorTransform(0,0,0); gul.transform.colorTransform = new ColorTransform(0,0,0); gron.transform.colorTransform = new ColorTransform(0,1.0,0); }public function setRodogGul() { rod.transform.colorTransform = new ColorTransform(1.0,0,0); gul.transform.colorTransform = new ColorTransform(1.0,1.0,0); gron.transform.colorTransform = new ColorTransform(0,0,0); }}//class}//package
Denne koden kan også legges direkte inn i symbolet Lyssignal i .fla-filen vi bruker når vi lager klassen.
(Forenkler det litt å slippe å redigere Lyssignal.as i tillegg til grafikken i .fla-filen!)
Eksporten gjør vi ved å høyreklikke på klassen Lyssignal i Library og velger Export SWC file...
og lagrer Lyssignal.swc på et passende sted.Filen LysSignal.swc kan du nå gi til andre.
Andre som skal bruke klassen legger LysSignal.swc i en passende katalog, gjerne i samme katalog som de skal lage en ny applikasjon i.
Men, den nye applikasjonen finner ikke .swc-filen uten at du forteller hvor den er, selv om den er i samme katalog!
For å finne LysSignal.swc, må du gå i properties for selve applikasjonen, velge skiftenøkkelen og legge inn lenke til LysSignal.swc
med +-knappen først og deretter Browse to SWC file - knappen, slik som vist her:
Da kan vi teste Lyssignal-klassen med noe a la:
der jeg har lagt inn radioknapper for å teste om lyssignalet skifter farver slik det skal:
/* Lyssignal klasse i LysSignal.swc Radioknapper: rodRb, ... *//// Lager nytt lyssignal, tar inn på scenen og plasserer:var ls: Lyssignal = new Lyssignal();addChild(ls);ls.x=250; ls.y=150;/// Tester med en lytterfunksjon koblet til radioknappene:rodRb.group.addEventListener(MouseEvent.CLICK, test);function test(evt: Event):void { var valg= int(rodRb.group.selection.value); if(valg==0) { ls.setRod(); } else if(valg==1) { ls.setRodogGul(); }else if(valg==2) { ls.setGul(); }else { ls.setGronn(); }//if }//test