Ett vanligt sätt att hantera större projekt i Flash är att lägga koden för separata delar i externa filer. I detta exemplet så läggs att som har med rymdskeppet att göra i Ship.as och allt som har med bränslet att göra i Fuel.as Ship.aspackage { import flash.display.*; import flash.events.*; import flash.events.KeyboardEvent; public class Ship extends MovieClip { //håller redan på vilken tangent som är nedtryckt var leftArrow:Boolean = false; var rightArrow:Boolean = false; var upArrow:Boolean = false; var downArrow:Boolean = false; //hastighet var speed_x:Number = 0; var speed_y:Number = 0; var acc:Number = 1.5; //mängd bränsle public var fuel:int = 0; //kallas på när skeppet skapas function Ship() { //lyssnare för tangenter stage.addEventListener(KeyboardEvent.KEY_DOWN, this.keyPressedDown); stage.addEventListener(KeyboardEvent.KEY_UP, this.keyPressedUp); this.addEventListener(Event.ENTER_FRAME, moveShip); } //anropas vid enter_frame function moveShip(e:Event) { //flyttar skeppet this.y += speed_y; this.x += speed_x; //ökar eller minskar hastigheten beroende av tengent if (leftArrow) { speed_x -= acc; } if (rightArrow) { speed_x += acc; } if (upArrow) { speed_y -= acc; } if (downArrow) { speed_y += acc; } } function keyPressedDown(e:KeyboardEvent) { //kontrollerar vilken tangent som eventet gäller if (e.keyCode == 37) { leftArrow = true; } else if (e.keyCode == 39) { rightArrow = true; } if (e.keyCode == 38) { upArrow = true; } else if (e.keyCode == 40) { downArrow = true; } } function keyPressedUp(e:KeyboardEvent) { //kontrollerar vilken tangent som eventet gäller if (e.keyCode == 37) { leftArrow = false; } else if (e.keyCode == 39) { rightArrow = false; } if (e.keyCode == 38) { upArrow = false; } else if (e.keyCode == 40) { downArrow = false; } } } } Fuel.aspackage { //Importerar nödvändiga bibliotek import flash.display.*; import flash.events.*; //Deklarerar klassen, observerar namnet Fuel public class Fuel extends MovieClip { //Data knutet till objektet var speed_y:Number = 1.2; function Fuel() { addEventListener(Event.ENTER_FRAME, shipCollide); } function shipCollide(e:Event) { //flyttar dunken this.y += speed_y; //kontrollerar om dunken nuddar skeppet if (MovieClip(parent).ship.hitTestObject(this)) { //ökar spekkets bränslenivå MovieClip(parent).ship.fuel ++; //sätter det nya bränslevärdet i textfältet på scenen MovieClip(parent).fuel_txt.text = String(MovieClip(parent).ship.fuel); //tar bort lyssnare från bärnsledunken removeEventListener(Event.ENTER_FRAME, shipCollide); //spelar upp animationen som tar bort bränslet this.play(); } else if(this.y > 300) { //om dunken har nått marken ska den tas bort från scenen removeEventListener(Event.ENTER_FRAME, shipCollide); parent.removeChild(this); } } } } |
Programmering > exempel >