Lees de eenvoudige stappen in deze Snelle tip door om een minimalistische SandClock met ActionScript te maken.
Laten we eens kijken naar het eindresultaat waar we naartoe zullen werken:
Met behulp van Arrays en een vooraf geplaatste vierkante MovieClip zullen we een SandClock maken die geanimeerd zal worden door een Timer.
Start Flash en maak een nieuw Flash-document, stel de stage in op 400x250 px en de framesnelheid op 24 fps.
Dit is de interface die we zullen gebruiken, de vierkanten in de afbeelding zijn eigenlijk een enkel blauw vierkant MovieClip geëxporteerd voor gebruik met ActionScript, met een koppelingsnaam van Plein. Een eenvoudige knop met de naam startknop wordt gebruikt om de klok te bouwen en te starten.
Maak een nieuwe ActionScript-klasse (Cmd + N), sla het bestand op als Main.as en schrijf de volgende regels. Lees de opmerkingen in de code door om het gedrag van de klas volledig te begrijpen.
pakket import flash.display.Sprite; import flash.utils.Timer; import flash.events.TimerEvent; import flash.events.MouseEvent; public class Hoofd breidt Sprite uit private var clockArray: Array = [15,13,11,9,7,3,1]; // Slaat het aantal vierkanten per regel op private var top: Array = []; / / houdt de vierkanten op het bovenste deel van de sandclock private var container: Sprite = nieuwe Sprite (); // slaat alle filmclips op private var containerCopy: Sprite = new Sprite (); // dupliceert het bovenste gedeelte om de onderste privé var timer te maken: Timer = nieuwe Timer (1000); // een timer die elke tweede privé var-teller wordt uitgevoerd: int = 0; // telt de seconden, gebruikt om de timer openbare functie te stoppen Main (): void startButton.addEventListener (MouseEvent.MOUSE_UP, buildClock); // een listener in de startknop private function buildClock (e: MouseEvent): void startButton.removeEventListener (MouseEvent.MOUSE_UP, buildClock); // schakelt de knop uit startButton.enabled = false; var clockLength: int = clockArray.length; / * dit dubbel voor bladert door de lengte van de klokarray EN de waarde van elk arrayelement creëert 7 lijnen (lengte) van vierkanten met 15, 13, 11 (elementwaarde) en zo verder * / for (var i: int = 0; ik < clockLength; i++) for (var j:int = 0; j < clockArray[i]; j++) var s:Square = new Square(); var sc:Square = new Square(); s.x = 70.5 + (s.width * j) + (1 * j) + (i * (s.width + 1)); s.y = 84.5 + (s.height + 1) * i; sc.x = s.x; sc.y = s.y; if (i >= 5) s.x = 70.5 + (s.width * j) + (1 * j) + (i * ((s.width) + 1)) + (s.width * 2 - 4); sc.x = s.x; container.addChild (s); containerCopy.addChild (sc); // maakt een kopie voor het onderste gedeelte top.push (s); sc.alpha = 0,2; // maakt het onderste gedeelte semi-transparant addChild (container); containerCopy.x = 225; // positioneert en roteert de container van het onderste deelCopy.y = 247; containerCopy.rotation = 180; addChild (containerCopy); timer.addEventListener (TimerEvent.TIMER, startClock); // start de timer timer.start (); / * deze functie wordt elke seconde uitgevoerd, het verandert de alpha van het overeenkomstige vierkant om het zandeffect te maken. wanneer de tijd voorbij is, stopt de timer en roept een functie * / persoonlijke functie startClock (e: TimerEvent) aan: void container.getChildAt (counter) α = 0.2; containerCopy.getChildAt (teller) .alpha = 1; teller ++; // 60 seconden indien (teller> = 59) timer.stop (); timer.removeEventListener (TimerEvent.TIMER, startClock); timeComplete (); private function timeComplete (): void // do something here
U kunt de timer en de aanpassen teller waarde om de duur van de sandclock groter of korter te maken.
Vergeet niet om de klassenaam toe te voegen aan de Klasse veld in de Publiceren deel van de eigenschappen paneel.
Waarom zou u deze SandClock niet gebruiken om uw applicatie of game een leuke touch te geven??
Ik hoop dat je deze tutorial leuk vond, bedankt voor het lezen!