Card Game Output Error Message
hi, everyone,
i'm making card game 2 shuffling decks. cards both decks supposed flip , drag. first deck working fine, in second deck, card won't flip. every time try flip card in second deck, output message:
typeerror: error #1009: cannot access property or method of null object reference.
@ wicky/clickcard()
i don't compiler errors @ moment, message every time click on deck two. card drag, won't flip, , error message pops up. have idea of mistake might be?
i have 2 files, wicky.as , wicky.fla. below code wicky.as. in advance help!
wicky.as
package {
import flash.display.*;
import flash.events.*;
public class wicky extends movieclip {
// game constants
private static const boardwidth:uint = 7;
private static const boardheight:uint = 7;
private static const boardoffsetx:number = 120;
private static const boardoffsety:number = 45;
private var firstcard:card;
private var secondcard:card;
private var thirdcard:card2;
private var fourthcard:card2;
public function wicky():void {
// make list of card numbers
var cardlist:array = new array();
for(var i:uint=0;i<boardwidth*boardheight;i++) {
cardlist.push(i);
}
var cardlist1:array = new array();
for(var j:uint=0;i<boardwidth*boardheight;j++) {
cardlist.push(j);
}
// create cards, position them, , assign randomcard face each
for(var x:uint=0;x<boardwidth;x++) { // horizontal
for(var y:uint=0;y<boardheight;y++) { // vertical
var c:card = new card(); // copy movie clip
c.stop(); // stop on first frame
var r:uint = math.floor(math.random()*cardlist.length); // random face
c.cardface = cardlist[r]; // assign face card
cardlist.splice(r,1); // remove face list
c.addeventlistener(mouseevent.click,clickcard); // have listen clicks
addchild(c); // show card
// create cards, position them, , assign randomcard face each
var b:card2 = new card2(); // copy movie clip
b.stop(); // stop on first frame
var s:uint = math.floor(math.random()*cardlist1.length); // random face
b.cardface = cardlist1[s]; // assign face card
cardlist1.splice(s,1); // remove face list
b.addeventlistener(mouseevent.click,clickcard); // have listen clicks
b.x = 200
b.y = 200
addchild(b); // show card
// function called when mouse button pressed.
function startdragging(event:mouseevent):void
{
event.currenttarget.startdrag();
}
// function called when mouse button released.
function stopdragging(event:mouseevent):void
{
event.currenttarget.stopdrag();
}
c.addeventlistener(mouseevent.mouse_down, startdragging);
c.addeventlistener(mouseevent.mouse_up, stopdragging);
b.addeventlistener(mouseevent.mouse_down, startdragging);
b.addeventlistener(mouseevent.mouse_up, stopdragging);
}
}
}
// player clicked on card
public function clickcard(event:mouseevent) {
var thiscard:card = (event.target card); // card?
firstcard = thiscard; // note i
firstcard.gotoandstop(thiscard.cardface+2); // turn over
}
public function clickcard1(event:mouseevent) {
var thatcard:card2 = (event.target card2); // card?
thirdcard = thatcard; // note i
thirdcard.gotoandstop(thatcard.cardface+2); // turn over
}
}
}
sorry, if code single class - mess. use nested functions unpredictable least. also, beneficial (and respectful) if formatted code , used syntax highlight available here.
More discussions in ActionScript 3
adobe
Comments
Post a Comment