Drop_and_Catch classes
fruit class
package { import flash.display.MovieClip; import flash.events.*; public class fruit extends MovieClip { var ySpeed; var points; public function fruit() { } function INIT() { position(); addEventListener(Event.ENTER_FRAME, update); } function update(e:Event) { y+=ySpeed; if (y>stage.stageHeight) { position(); } } function position() { y=0; x=Math.random()*stage.stageWidth-width; ySpeed=(Math.random()*10)+2; } function EXIT() { removeEventListener(Event.ENTER_FRAME, update); } } }
basket class
package { import flash.display.MovieClip; import flash.events.*; public class basket extends MovieClip { public function basket() { INIT(); } function INIT() { addEventListener(Event.ENTER_FRAME, update); } function update(e:Event) { x=stage.mouseX; y=stage.stageHeight-height; } function EXIT() { removeEventListener(Event.ENTER_FRAME, update); } } }
doc class
package { import flash.display.MovieClip; import flash.events.*; import flash.ui.Mouse; public class doc extends MovieClip { var hart=new fruit ; var knife=new fruit ; var ourBasket=new basket ; var score:int=0; public function doc() { stop(); INIT(); buttonMode=true; } function INIT() { score=0; Mouse.hide(); addChild(hart); hart.gotoAndStop("hart"); hart.points=10; hart.INIT(); addChild(knife); knife.gotoAndStop("knife"); knife.points=-10; knife.INIT(); addChild(ourBasket); ourBasket.INIT(); addEventListener(Event.ENTER_FRAME, update); } function update(e:Event) { testCollision(hart); testCollision(knife); } function testCollision(someFruitName) { if (someFruitName.hitTestObject(ourBasket)) { score+= someFruitName.points; someFruitName.position(); result(); } } function result() { trace("Du har " + score + " points"); if (score>20) { EXIT(); gotoAndStop("win"); } if (score<-20) { EXIT(); gotoAndStop("lose"); } } function EXIT() { Mouse.show(); removeEventListener(Event.ENTER_FRAME, update); removeChild(hart); hart.EXIT(); removeChild(knife); knife.EXIT(); removeChild(ourBasket); ourBasket.EXIT(); } function goGame(e:MouseEvent) { gotoAndStop("game"); INIT(); }/**/ } }
Created: 20 October 2008 • by admin
Categories: classes •oevelse
Comments: be the first to comment
Bat_Ball classes
bat class
package { import flash.display.MovieClip; import flash.events.*; public class bat extends MovieClip { public function bat() { //INIT(); } function INIT() { addEventListener(Event.ENTER_FRAME, update); } function update(e:Event) { y= stage.stageHeight-(height/2); x= stage.mouseX; } function EXIT() { removeEventListener(Event.ENTER_FRAME, update); } } }
ball class
package { import flash.display.MovieClip; import flash.events.*; public class ball extends MovieClip { var xSpeed=10; var ySpeed=10; var margin=width/2; public function ball() { //INIT(); } function INIT() { y=0+margin; addEventListener(Event.ENTER_FRAME, update); } function update(e:Event) { if (x<0+margin) { x=0+margin; xBounce(); } if (x>stage.stageWidth-margin) { x=stage.stageWidth-margin; xBounce(); } if (y<0+margin) { y=0+margin; yBounce(); } if (y>=stage.stageHeight) { y=0+margin; } x+=xSpeed; y+=ySpeed; } function xBounce() { xSpeed=xSpeed*-1; gotoAndPlay("pong"); } function yBounce() { ySpeed=ySpeed*-1; gotoAndPlay("pong"); } function EXIT() { removeEventListener(Event.ENTER_FRAME, update); } } }
doc class
package { import flash.display.MovieClip; import flash.events.*; import flash.text.*; public class doc extends MovieClip { var ourBat = new bat(); var ourBall = new ball(); var score:int; var points:int=1; var scoreMIN:int=-2; var scoreMAX:int=2; public function doc() { stop(); //INIT(); back_but.addEventListener(MouseEvent.CLICK, goGame); } function INIT() { score=0; score_txt.text=score+" points yet"; addChild(ourBat); ourBat.INIT(); addChild(ourBall); ourBall.INIT(); addEventListener(Event.ENTER_FRAME, update); } function update(e:Event) { if (ourBall.hitTestObject(ourBat)) { ourBall.yBounce(); score+=points; } if (ourBall.y>stage.stageHeight) { score-=points; } result(); } function result() { //trace("Du har " + score + " points"); score_txt.text="points: "+score+" out of "+scoreMAX ; if (score==scoreMAX) { EXIT(); gotoAndStop("win"); } if (score==scoreMIN) { EXIT(); gotoAndStop("lose"); } } function EXIT() { removeEventListener(Event.ENTER_FRAME, update); removeChild(ourBat); ourBat.EXIT(); removeChild(ourBall); ourBall.EXIT(); } function goGame(e:MouseEvent) { gotoAndStop("game"); INIT(); }/**/ } }
Created: 20 April 2008 • by admin
Categories: classes •oevelse
Comments: be the first to comment
Load presentation
Tilgængelige variabler defineret øverst.
I en class, skal de stå i class definitionen, før constructer’en (hoved-functionen).
var film1:URLRequest = new URLRequest("undermappenavn/anim_playback.swf"); var film2:URLRequest = new URLRequest("undermappenavn/bat_ball_2a.swf"); var film3:URLRequest = new URLRequest("undermappenavn/fruit_extra_new_b.swf");
I en class, vil denne typisk stå i constructor’en:
var ldr:Loader = new Loader();
I nedenstående script loades og vises hver film i hver sin knap-funktion:
film1_but.addEventListener(MouseEvent.MOUSE_DOWN,film1_Handler); function film1_Handler(e:MouseEvent):void { SoundMixer.stopAll(); ldr.load(film1); box_mc.addChild(ldr); stage.frameRate=12; } film2_but.addEventListener(MouseEvent.MOUSE_DOWN,film2_Handler); function film2_Handler(e:MouseEvent):void { SoundMixer.stopAll(); ldr.load(film2); box_mc.addChild(ldr); stage.frameRate=32; } film3_but.addEventListener(MouseEvent.MOUSE_DOWN,film3_Handler); function film3_Handler(e:MouseEvent):void { SoundMixer.stopAll(); ldr.load(film3); box_mc.addChild(ldr); stage.frameRate=32; }
Nedenstående knap-funktioner tømmer loaderen, ændrer boksens egenskaber, og til sidst ‘taler’ direkte til den loadede swf’s egen tidslinie :
unload_but.addEventListener(MouseEvent.MOUSE_DOWN,unload_Handler); function unload_Handler(e:MouseEvent):void { SoundMixer.stopAll(); ldr.unloadAndStop(); stage.frameRate=12; } distort_but.addEventListener(MouseEvent.MOUSE_DOWN,distort_Handler); function distort_Handler(e:MouseEvent):void { box_mc.scaleX = box_mc.scaleY = .6; box_mc.rotation=9; } normal_but.addEventListener(MouseEvent.MOUSE_DOWN,normal_Handler); function normal_Handler(e:MouseEvent):void { box_mc.scaleX = box_mc.scaleY = .6; box_mc.x = 180; box_mc.y = 64; box_mc.rotation=0; } cheat_but.addEventListener(MouseEvent.MOUSE_DOWN,cheat_Handler); function cheat_Handler(e:MouseEvent):void { MovieClip(ldr.content).gotoAndStop("win"); /* tilsvarende, kaldt fra den loadede swf's tidslinie, ville være: ////////// MovieClip(parent.parent).play(); ///////// */ }
Created: 15 April 2008 • by admin
Categories: as3 •eksempel •navigation •oevelse
Comments: be the first to comment
Sound object
Load lyden
var my_file:URLRequest=new URLRequest("lyd.mp3"); var my_sound:Sound=new Sound(); my_sound.load(my_file);
Når et Sound-objekt først har loadet en lyd, kan det ikke genbruges. Nyt Sound-objekt for ny lyd.
Channel Control
Play og stop
var channel1:SoundChannel; channel1 = my_sound.play(0,10); //fra start, 10 gange channel1.stop();
Position til pause
var pos:int= channel1.position; channel1=my_sound.play(pos);
Stop all sounds
SoundMixer.stopAll();
Link lyden
Forudsætter en importeret lyd i library med linkage-name: ding.
Lyd i library, kan du linke med højreklik > Properties > Export for ActionScript > og classNavn, fx. ‘ding’.
(Flash vil som regel undre sig over, at der ikke ligger en class med det navn, og hvis ikke du med vilje har lavet en ekstern actionscript-fil med samme navn, skal du bare svare ok til dens forslag.)
Derefter kan den kaldes frem således:
//A import flash.media.*; //B var lyd:Sound=new ding(); var sndc:SoundChannel; //C//D //play og stop sndc = lyd.play(); sndc.stop(); //D //stop alle lyde SoundMixer.stopAll();
Created: 10 April 2008 • by admin
Categories: lyd •snippet
Comments: be the first to comment
Timer
// timer: 3 gange 1 sekund – og så slut.
var myTimer:Timer = new Timer(1000, 3);//delay, repatCount myTimer.start(); myTimer.addEventListener(TimerEvent.TIMER, timerHandler); function timerHandler(e:TimerEvent):void { trace("Tick "+myTimer.currentCount); } myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, completeHandler); function completeHandler(e:TimerEvent):void { trace("Ding completed at "+myTimer.repeatCount); }
// En knap sætter tim i gang – og ændrer dens værdier
someButton.addEventListener(MouseEvent.MOUSE_DOWN, TimerJet); function TimerJet(e:MouseEvent) { var tim = new Timer (1000, 3); tim.start(); tim.addEventListener(TimerEvent.TIMER, onTimer); function onTimer(e:TimerEvent):void { trace("Tick "+tim.currentCount); } tim.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete); function onTimerComplete(e:TimerEvent):void { trace("Ding completed at "+tim.repeatCount); tim.reset(); tim.delay = 500; tim.repeatCount = 5; tim.start(); } }
Created: 8 April 2008 • by admin
Categories: as3 •snippet
Comments: be the first to comment
Loader, load!
der kan loades eksterne swf, jpg, gif, png mm.
Grundkode
var loader:Loader = new Loader(); var request:URLRequest = new URLRequest ("en.swf"); loader.load(request); addChild(loader);
Supplerende funktionalitet:
load en ny fil ind og erstat den forrige loadede fil
loader.load(new URLRequest ("enAnden.swf")); addChild(loader);
load indholdet ind i en movieclip
box_mc.addChild(loader);
unload loaderen
loader.unload();
Med PROGRESS preloader og COMPLETE:
Setup: pct_txt (dynamisk tekstfelt), frames100_mc (animeret movieClip på 100 frames).
// Husk at trykke CTRL+ENTER 2 gange for at teste preloader. ldr.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, pHANDLER); function pHANDLER(e:ProgressEvent):void { var pctLoaded:int = Math.round(e.bytesLoaded/e.bytesTotal * 100); pct_txt.text=pctLoaded.toString()+" %"; frames100_mc.gotoAndStop(pctLoaded); } ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, cHANDLER); function cHANDLER(e:Event):void { e.target.content.scaleX = e.target.content.scaleY =.2; }
Created: 8 April 2008 • by admin
Categories: overblik •preloader •snippet
Comments: be the first to comment
