Please help!! New to Flash making memory game
Trying to make this flash memory game and im a complete noob so need help. I need to reset the cards back to 10. i believe the cards is totalchildren = 10 or something but i dont know. Get errors 1119 and 1120.
| Scene 1, Layer 'Layer 1', Frame 1, Line 179 | 1120: Access of undefined property reset. |
| Scene 1, Layer 'Layer 1', Frame 1, Line 180 | 1119: Access of possibly undefined property buttonMode through a reference with static type flash.display:SimpleButton. |
import away3d.cameras.*;
import away3d.containers.*;
import away3d.materials.*;
import away3d.primitives.Plane
import away3d.primitives.Cube
import away3d.containers.ObjectContainer3D;
import away3d.core.math.Number3D;
import caurina.transitions.*
import fl.motion.MotionEvent;
var scene:Scene3D;
var camera:Camera3D;
var view:View3D;
var totalchildren:int=10
var cards:Array
var textures:Array = [ new texture0(0,0),
new texture1(0,0),
new texture2(0,0),
new texture3(0,0),
new texture4(0,0)]
var backtexture:BitmapData = new textureback(0,0)
var woodtexture:BitmapData = new texturewood(0,0)
var cardwidth:Number = 110
var cardheight:Number = 150
var xoffset:Number = 10
var yoffset:Number = 10
var cardsholder:ObjectContainer3D
var selectedCard1:Plane
var selectedCard2:Plane
var disableMouseEvents:Boolean=false
function initAway3D():void {
scene = new Scene3D();
camera = new Camera3D();
camera.y = 700
camera.z = 500
camera.lookAt(new Number3D(0,0,0))
view = new View3D({scene:scene, camera:camera});
view.x = stage.stageWidth/2
view.y = stage.stageHeight/2
addChild(view);
}
function createGround():void {
var cube:Cube = new Cube({width:680,depth:400,height:20,pushback:true,ownCanvas:true,material: new BitmapMaterial(woodtexture)})
cube.y=-20
scene.addChild(cube)
}
function createCard(texture:BitmapData,id:int):ObjectContainer3D {
var card:ObjectContainer3D = new ObjectContainer3D()
var front:Plane = new Plane({width:cardwidth,height:cardheight, material: new BitmapMaterial(texture,{smooth:true})})
var back:Plane = new Plane({width:cardwidth,height:cardheight, material: new BitmapMaterial(backtexture,{smooth:true})})
front.rotationY=180
back.rotationZ=180
back.rotationY=180
back.extra = {}
back.extra.id = id
back.extra.targetCard = card
back.addOnMouseDown(onBackClicked)
card.rotationZ=180
card.addChild(front)
card.addChild(back)
card.ownCanvas = true
return card
}
function initCards():void {
cards = new Array()
for(var i:int = 0; i<textures.length; i++ ) {
var card1:ObjectContainer3D = createCard(textures,i)
var card2:ObjectContainer3D = createCard(textures,i)
cards.push( card1 )
cards.push( card2 )
}
}
function randomizeCards():void{
var newArray:Array = new Array();
while(cards.length > 0){
newArray.push(cards.splice(Math.floor(Math.random()*cards.length), 1)[0]);
}
cards = newArray
}
function addCardsToScene():void {
cardsholder = new ObjectContainer3D()
var currentindex:int = 0
for(var i:int=0; i<2; i++) {
for(var b:int=0; b<5; b++) {
cards[currentindex].x=b*(cardwidth+xoffset)+cardwidth/2
cards[currentindex].z=i*(cardheight+yoffset)+cardheight/2
cardsholder.addChild(cards[currentindex])
currentindex++
}
}
var cardswidth:Number = (5*cardwidth) + (4*xoffset)
var cardsheight:Number = (2*cardheight) + (1*yoffset)
cardsholder.x=-cardswidth/2
cardsholder.z=-cardsheight/2
scene.addChild(cardsholder)
}
function onBackClicked(e:Event):void {
if(disableMouseEvents==false) {
if(selectedCard1==null) {
selectedCard1 = e.currentTarget as Plane
}else {
if(selectedCard2==null) {
selectedCard2 = e.currentTarget as Plane
waitForDecision()
disableMouseEvents = true
}
}
Tweener.addTween(e.currentTarget.extra.targetCard,{y:50,rotationZ:0,time:1})
}
}
function waitForDecision():void {
var timer:Timer = new Timer(1000,1)
timer.addEventListener(TimerEvent.TIMER,makeDecision)
timer.start()
}
function makeDecision(e:Event):void {
if(selectedCard1.extra.id == selectedCard2.extra.id) {
Tweener.addTween(selectedCard1.extra.targetCard,{alpha:0,time:0.2,onComplete:removeCard,onCompleteParams:[selectedCard1.extra.targetCard]})
Tweener.addTween(selectedCard2.extra.targetCard,{alpha:0,time:0.2,onComplete:removeCard,onCompleteParams:[selectedCard2.extra.targetCard]})
}else {
Tweener.addTween(selectedCard1.extra.targetCard,{y:0,rotationZ:180,time:1})
Tweener.addTween(selectedCard2.extra.targetCard,{y:0,rotationZ:180,time:1})
}
disableMouseEvents = false
selectedCard1 = null
selectedCard2 = null
}
function removeCard(e:ObjectContainer3D):void {
cardsholder.removeChild(e)
totalchildren--
if(totalchildren==0) {
trace("WIN")
}
}
function startToRender():void {
addEventListener(Event.ENTER_FRAME, render);
}
function render( e:Event ):void{
view.render();
}
initAway3D()
createGround()
initCards()
randomizeCards()
addCardsToScene()
startToRender()
reset_btn.addEventListener(MouseEvent.CLICK, reset);
reset_btn.buttonMode = true;
