- Actionscript3: Countdown number of ducks
- import flash.display.Sprite;
- import flash.events.Event;
- import flash.events.MouseEvent;
- import flash.text.TextField;
- [SWF(width="800", height="600", backgroundColor="#E6FCFF")]
- public class Main extends Sprite
- {
- private var _sittingDucks:Array = []; //always set your arrays with [] at the top
- public var _scoreDisplay:TextField
- public function Main()
- {
- //adding the background, and positioning it
- var background:Background = new Background();
- this.addChild(background);
- background.x = 30;
- background.y = 100;
- for(var i:uint = 0; i < 5; i++)
- {
- //adding the first cloud, and positioning it
- var clouds:Clouds = new Clouds();
- this.addChild(clouds);
- clouds.x = 130 + Math.random() * 600; //130 to 730
- clouds.y = 230;
- clouds.speedX = Math.random() * 3;
- clouds.width = clouds.height = 200 * Math.random()//randomly changes the clouds demensions
- }
- var waves:Waves = new Waves();
- this.addChild(waves);
- waves.x = 0;
- waves.y = 510;
- waves.speedX = Math.random() * 3;
- for(var j:uint = 0; j < 8; j++)
- {
- var ducks:Ducks = new Ducks();
- this.addChild(ducks);
- ducks.x = 100 + j * 100;
- ducks.y = 475;
- _sittingDucks.push(ducks);
- ducks.addEventListener(MouseEvent.CLICK, ducksDestroy);
- }
- var waves2:Waves = new Waves();
- this.addChild(waves2);
- waves2.x = 0;
- waves2.y = 520;
- waves2.speedX = Math.random() * 3;
- var setting:ForeGround = new ForeGround();
- this.addChild(setting);
- setting.x = 0;
- setting.y = 50;
- setting.width = 920;
- var board:ScoreDisplay = new ScoreDisplay();
- this.addChild(board);
- board.x = 570;
- board.y = 35;
- }
- private function ducksDestroy(event:MouseEvent):void
- {
- //store the crow we clicked on in a new array
- var clickedDuck:Ducks = Ducks(event.currentTarget);
- //remove it from the crows array
- //find the address of the crow we are removing
- var index:uint = _sittingDucks.indexOf(clickedDuck);
- //remove it from the array with splice
- _sittingDucks.splice(index, 1);
- //remove it from my document's display list
- this.removeChild(clickedDuck);
- }
- }
- import flash.events.Event;
- import flash.events.MouseEvent;
- import flash.text.TextField;
- import ScoreDisplayBase; // always import the classes you are using
- public class ScoreDisplay extends ScoreDisplayBase
- {
- private var txt:TextField; // where is it initialized?
- private var score:uint = 0;
- public function ScoreDisplay()
- {
- super(); // do you init txt here?
- }
- public function scoreUpdate():void
- {
- score += 10; // ok, so I suppose that your score does not represent the remaining ducks as you said, just only a score
- txt.text = score.toString();
- }
- }
- //you want a reference to the ScoreDisplay, not this
- public var _scoreDisplay:TextField //no
- public var _scoreDisplay:ScoreDisplay //yes
- _scoreDisplay = :ScoreDisplay = new ScoreDisplay();
- this.addChild(_scoreDisplay );
- _scoreDisplay .x = 570;
- _scoreDisplay .y = 35;
- private function spawnDucks() {
- for(var j:uint = 0; j < 8; j++)
- {
- var ducks:Ducks = new Ducks();
- this.addChild(ducks);
- ducks.x = 100 + j * 100;
- ducks.y = 475;
- _sittingDucks.push(ducks);
- ducks.addEventListener(MouseEvent.CLICK, ducksDestroy);
- }
- }
- private function ducksDestroy(event:MouseEvent):void
- {
- //store the crow we clicked on in a new array
- var clickedDuck:Ducks = Ducks(event.currentTarget);
- //remove it from the crows array
- //find the address of the crow we are removing
- var index:uint = _sittingDucks.indexOf(clickedDuck);
- //remove it from the array with splice
- _sittingDucks.splice(index, 1);
- //remove it from my document's display list
- this.removeChild(clickedDuck);
- //update the score
- _scoreDisplay.scoreUpdate();
- //Check if all the ducks are gone
- if (_sittingDucks.length == 0) {
- //All the ducks are dead, we've won the game!
- //create some kind of popup to display.
- //add it to the screen, have some form
- //of button (or a timer) take it away
- //whatever takes the popup away, have it call 'reset'
- }
- }
- private function reset():void
- {
- //write a reset method to clear the score
- _scoreDisplay.reset();
- //create some ducks and you're ready to go!
- spawnDucks();
- }