Läs igenom de enkla stegen i den här snabba tipsen för att skapa ett minimalt SandClock med ActionScript.
Låt oss ta en titt på det slutliga resultatet vi ska arbeta för:
Med hjälp av Arrays och en premade square MovieClip skapar vi ett SandClock som kommer att animeras av en Timer.
Starta Flash och skapa ett nytt Flash-dokument, sätt scenstorleken till 400x250px och bildhastigheten till 24fps.
Detta är gränssnittet vi ska använda, kvadraterna i bilden är faktiskt en enda blå kvadrat MovieClip exporterad för användning med ActionScript, med ett länknamn på Fyrkant. En enkel knapp som heter startknapp kommer att användas för att bygga och starta klockan.
Skapa en ny ActionScript-klass (Cmd + N), spara filen som Main.as och skriv följande rader. Läs igenom kommentarerna i koden för att fullt ut förstå klassbeteendet.
paket import flash.display.Sprite; importera flash.utils.Timer; importera flash.events.TimerEvent; importera flash.events.MouseEvent; public class Main sträcker Sprite private var clockArray: Array = [15,13,11,9,7,3,1]; // Lagrar antalet kvadrater per rad privat var topp: Array = []; // kommer att hålla rutorna på den övre delen av sandklockan private var container: Sprite = new Sprite (); // lagrar alla movieclips private var containerCopy: Sprite = new Sprite (); // kommer att duplicera den övre delen för att göra den nedersta privata var timer: Timer = Ny Timer (1000); // en timer som utförs varje sekund privat var-räknare: int = 0; // kommer att räkna sekunder, som används för att stoppa funktionen för timerfunktionen Main (): void startButton.addEventListener (MouseEvent.MOUSE_UP, buildClock); // en lyssnare i startknappen privatfunktion buildClock (e: MouseEvent): void startButton.removeEventListener (MouseEvent.MOUSE_UP, buildClock); // avaktiverar knappen startButton.enabled = false; var klocklängd: int = klockaArray.length; / * denna dubbla för att bläddra genom klocklängdslängden OCH värdet för varje gruppelement skapar 7 linjer (längd) av kvadrater med 15, 13, 11 (elementvärde) och så vidare * / för (var i: int = 0; jag < 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 (se); // skapar en kopia för den nedersta delen top.push (s); sc.alpha = 0,2; // gör underdelen halv transparent addChild (container); containerCopy.x = 225; // positionerar och roterar bottendelen containerCopy.y = 247; containerCopy.rotation = 180; addChild (containerCopy); timer.addEventListener (TimerEvent.TIMER, startClock); // start timer timer.start (); / * den här funktionen utförs varje sekund, det ändrar alfanumeriska motsvarande kvadrat för att göra sandeffekten. När tiden är klar stannar timer och kallar en funktion * / privat funktion startClock (e: TimerEvent): void container.getChildAt (räknare) .alpha = 0.2; containerCopy.getChildAt (räknare) .alpha = 1; räknare ++; // 60 sekunder om (räknare> = 59) timer.stop (); timer.removeEventListener (TimerEvent.TIMER, startClock); timeComplete (); privat funktionstidKomplettera (): void // gör något här
Du kan justera Timer och disken värde för att göra sandklockens varaktighet större eller kortare.
Kom ihåg att lägga till klassnamnet till Klass fält i Publicera del av Egenskaper panel.
Varför inte använda detta SandClock för att ge din ansökan eller spel en fin touch?
Jag hoppas att du gillade den här handledningen, tack för att du läste!