Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

Animate CC and AS3 Animate CC and AS3 Error # 1010

New Here ,
May 28, 2018 May 28, 2018

I am coding a Marble Maze with accelerometer. Here is my code.

package {

import flash.display.*;

import flash.events.*;

import flash.text.*;

import flash.geom.*;

import flash.utils.getTimer;

import flash.sensors.Accelerometer;

import flash.media.Sound;

import flash.media.SoundChannel;

public class MarbleMaze_sanJ01 extends MovieClip {

// Constantes

static const speed:Number = .3;

static const marbleSize:Number = 20;

static const holeDist:Number = 5;

static const mapRect:Rectangle = new Rectangle(2, 2, 1918, 1078);

//Objet du jeu

private var blocks:Array;

//Objet accelerometer

private var accelerometer:Object;

//Variables du jeu

private var dx,dy:Number;

private var lastTime:int;

// Démarer la partie

public function startMarbleMaze_sanJ01() { 

// Recuperer les blocks

findBlocks();

//définir le mouv de départ

dx = 0.0;

dy = 0.0;

// Ajouter des écouteur

this.addEventListener(Event.ENTER_FRAME,gameLoop);

//configurer l'accelerometre ou simuler avec fleche

if (Accelerometer.isSupported){

accelerometer = new Accelerometer();

accelerometer.addEventListener(AccelerometerEvent.UPDATE,

accelerometerHandler);

} else {

stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownFunction);

stage.addEventListener(KeyboardEvent.KEY_UP, keyUpFunction);

stage.focus = stage;

}

} // Fin fonction start

public function findBlocks() {

blocks = new Array();

for(var i=0;i<gameSprite.numChildren;i++) {

var mc = gameSprite.getChildAt(i);

if (mc is Block) {

blocks.push(mc);

}

}

} //Fin function findblock

//jeu01

private function accelerometerHandler(e) {

dx = -e.accelerationX;

dy = e.accelerationY;

}

//si pas accelometer pour test avec fleches clavier

public function keyDownFunction(event:KeyboardEvent) {

if (event.keyCode == 37) {

dx = -.5;

} else if (event.keyCode == 39) {

dx = .5;

} else if (event.keyCode == 38) {

dy = -.5;

} else if (event.keyCode == 40) {

dy = .5;

}

} // fin fonction keydown

public function keyUpFunction(event:KeyboardEvent) {

if (event.keyCode == 37) {

dx = 0;

} else if (event.keyCode == 39) {

dx = 0;

} else if (event.keyCode == 38) {

dy = 0;

} else if (event.keyCode == 40) {

dy = 0;

}

} // fin fonction keyup

public function gameLoop(event:Event) {

// Calculer le temps écoulé

if (lastTime == 0) lastTime = getTimer();

var timeDiff:int = getTimer()-lastTime;

lastTime += timeDiff;

// Déplacer la bille

moveMarble(timeDiff);

//Vérifier si elle est dans le trou

if (Point.distance(new Point(gameSprite.marble.x,gameSprite.marble.y),

new Point(gameSprite.hole.x, gameSprite.hole.y)) < holeDist) {

endGame();

}

} // fin fonction gameloop

public function moveMarble(timeDiff:Number) {

//Calculer zone actuelle de la bille

var marbleRect = new Rectangle(gameSprite.marble.x-marbleSize/2,

gameSprite.marble.y-marbleSize/2, marbleSize, marbleSize);

// Calculer la nouvelle zone de la bille

var newMarbleRect = marbleRect.clone();

newMarbleRect.x += dx*speed*timeDiff;

newMarbleRect.y += dy*speed*timeDiff;

//Calculer le nouvel emplacement

var newX:Number = gameSprite.marble.x + dx*speed*timeDiff;

var newY:Number = gameSprite.marble.y + dy*speed*timeDiff;

// Parcourir en boucle les blocks et vérifier les collision

for(var i:int=0;i<blocks.length;i++) {

// Récupérer le rectangle bloc et voir les collisions

var blockRect:Rectangle = blocks.getRect(gameSprite);

if (blockRect.intersects(newMarbleRect)) {

// Recule horizontale

if (marbleRect.right <= blockRect.left) {

newX += blockRect.left - newMarbleRect.right;

dx = 0;

} else if (marbleRect.left >= blockRect.right) {

newX += blockRect.right - newMarbleRect.left;

dx = 0;

}

// recule verticale

if (marbleRect.top >= blockRect.bottom) {

newY += blockRect.bottom - newMarbleRect.top;

dy = 0;

} else if (marbleRect.bottom <= blockRect.top) {

newY += blockRect.top - newMarbleRect.bottom;

dy = 0;

}

} // Fin if

} // fin for

//définir nlle emplacment bille

gameSprite.marble.x = newX;

gameSprite.marble.y = newY;

} // fin fontion moveMarble

//Fin de la partie

public function endGame() {

blocks = null;

this.removeEventListener(Event.ENTER_FRAME,gameLoop);

if (Accelerometer.isSupported) {

accelerometer.removeEventListener(AccelerometerEvent.UPDATE,accelerometerHandler);

accelerometer = null;

} else {

stage.removeEventListener(KeyboardEvent.KEY_DOWN,keyDownFunction);

stage.removeEventListener(KeyboardEvent.KEY_UP,keyUpFunction);

}

gotoAndStop("gameover");

}// fin fonction endgame

}// Fermer class

}// Fermer package

I get the following error:

What am I doing wrong? Can you help me. Thank you in advance.

Error # 1010: A term is undefined and has no properties.

at MarbleMaze_sanJ01 / moveMarble ()

at MarbleMaze_sanJ01 / gameLoop ()

Best regard

Anne

TOPICS
ActionScript
197
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
May 28, 2018 May 28, 2018
LATEST

line 117 of SanJ01.as is referencing an undefined object.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines