TypeError: Error 1009 para juego de cartas [as3]
- wjordan87
- Born


- Registrado: Oct 18, 2011
- Mensajes: 2
- Status: Offline
Aquí está mi código...
Creo que el problema tiene algo que ver con uno de los vars se estableció cuando no debería pero Im no seguro.
Creo que el problema tiene algo que ver con uno de los vars se estableció cuando no debería pero Im no seguro.
ACTIONSCRIPT Código: [ Select ]
//--------IMPORT AWAY 3D-------//
import away3d.cameras.*;
import away3d.containers.*;
import away3d.materials.*;
import away3d.primitives.Plane;
import away3d.containers.ObjectContainer3D;
import away3d.core.math.Number3D;
//------IMPORT TWEENERS-------//
import caurina.transitions.*;
import flash.display.InteractiveObject;
import flash.display.Bitmap;
import flashx.textLayout.conversion.PlainTextExporter;
import flash.display.BitmapData;
import flash.events.Event;
import flash.utils.Timer;
import flash.events.TimerEvent;
//-------SET UP VARIABLES------//
//variable for the scene
var scene:Scene3D;
//variable for camera - angle
var camera:Camera3D;
//variable for view
var view:View3D;
//number of cards that you want to have
var totalchildren:int = 10;
//set up array to hold the cards
var cards:Array;
//array to hold the front of the cards
var textures:Array = [new texture0(0,0),
new texture1(0,0),
new texture2(0,0),
new texture3(0,0),
new texture4(0,0)];
//get the back of the cards
var backtexture:BitmapData = new CardBack(0,0);
//set width and height
var cardwidth:Number = 150;
var cardheight:Number = 205;
//distance between each card
var xoffset:Number = 10;
var yoffset:Number = 10;
//create an object to hold all the cards
var cardsholder:ObjectContainer3D;
//create the sides of the selected card
var selectedCard1:Plane;
var selectedCard2:Plane;
//disable mouse events - gives us control over every card
var disableMouseEvents:Boolean = false;
//------------FUNCTIONS-------------//
//----------Establish Scene/Viewing Area---------//
function initAway3D():void{
var scene = new Scene3D;
var camera = new Camera3D;
//position the camera
camera.y = 1000; //works like a zoom
camera.z = 0;
camera.lookAt(new Number3D(0,0,0));
//create and position the view
var view = new View3D({scene:scene, camera:camera});
//put the view on the stage
view.x = stage.stageWidth/2;
view.y = stage.stageHeight/2;
addChild(view);
}
//-----Create One of the Carfds------//
function createCard(texture:BitmapData, id:int):ObjectContainer3D{
var card:ObjectContainer3D = new ObjectContainer3D();
//var for the front
var front:Plane = new Plane({width:cardwidth, height:cardheight, material:new BitmapMaterial(texture,{smmoth:true})});
//var for the back
var back:Plane = new Plane({width:cardwidth, height:cardheight, material:new BitmapMaterial(backtexture,{smmoth:true})});
//positioning
front.rotationY = 180;
back.rotationZ = 180;
back.rotationY = 180;
//access id - use to determine the matches
back.extra = {};
back.extra.id = id;
back.extra. targetCard = card;
back.addOnMouseDown(onBackClicked);
//spin moves
card.rotationZ = 180;
card.addChild(front);
card.addChild(back);
card.ownCanvas = true;
//create the card
return card;
}
//--------Create the rest of the cards----------//
function allCards():void{
var cards = new Array();
//(starts at 0, goes until it reaches the end of array, increases by 1)
for(var i:int=0; i<textures.length; i++){
//create the first card
var card1:ObjectContainer3D = createCard(textures[i],i);
//create it's match
var card2:ObjectContainer3D = createCard(textures[i],i);
//create it's match
//var card3:ObjectContainer3D = create Card(textures[i],i);
//create it's match
//var card4:ObjectContainer3D = create Card(textures[i],i);
cards.push(card1);
cards.push(card2);
}
}
//-------- SHUFFLE/RANDOMIZE CARDS---------//
function randomizeCards():void{
//var to hold random order of cards
var newArray:Array = new Array();
while(cards.length>0){
newArray.push(cards.splice(Math.floor(Math.random()*cards.length),1)[0]);
}
cards = newArray;
}
//-------Add Cards to the Scene-------//
function addCardsToScene():void{
//var that holds everything
var cardsholder = new ObjectContainer3D();
//how many cards we currently have
var cardNumber:int = 0;
//create the grid
//vertical part of the grid - number of rows
for(var i:int = 0; i<2; i++){
//number of columns
for(var b:int = 0; b<5; b++){
cards[cardNumber].x = b*(cardwidth+xoffset)+cardwidth/2;
cards[cardNumber].z = i*(cardheight+yoffset)+cardheight/2;
cardsholder.addChild(cards[cardNumber]);
cardNumber++;
}
}
var cardswidth:Number = (5*cardwidth) + (4*xoffset);
var cardsheight:Number = (2*cardheight) + (1*yoffset);
//position
cardsholder.x = cardswidth/2;
cardsholder.y = cardsheight/2;
//add to the scene
scene.addChild(cardsholder);
}
//-------------------CLICK FUNCTIONS-----------------//
function onBackClicked(event:Event):void{
if(disableMouseEvents==false){
if(selectedCard1==null){
selectedCard1 = event.currentTarget as Plane;
}
else{
if(selectedCard2==null){
selectedCard2=event.currentTarget as Plane;
waitForDecision();
disableMouseEvents=true;
}
}
Tweener.addTween(event.currentTarget.extra.targetCard,{y:50, rotationZ:0, time:1});
}
}
//---------DEFINE THE DECISION-----------//
function waitForDecision():void{
var timer:Timer = new Timer(1000, 1);
timer.addEventListener(TimerEvent.TIMER, makeDecision);
timer.start();
}
//----------WHAT TO DO IF RIGHT OR WRONG-----------//
function makeDecision(event:Event):void{
//if it matches = right
if(selectedCard1.extra.id == selectedCard2.extra.id){
Tweener.addTween(selectedCard1.extra.targetCard,{alpha:0, time:0.3, onComplete:removeCard, onCompleteParams:[selectedCard1.extra.targetCard]});
Tweener.addTween(selectedCard2.extra.targetCard,{alpha:0, time:0.3, onComplete:removeCard, onCompleteParams:[selectedCard1.extra.targetCard]});
}
//if its wrong
else{
Tweener.addTween(selectedCard1.extra.targetCard,{y:0, rotationZ:180, time:1});
Tweener.addTween(selectedCard2.extra.targetCard,{y:0, rotationZ:180, time:1});
}
//reset variables for mouse clicks, and card slection
disableMouseEvents = false;
selectedCard1=null;
selectedCard2=null;
}
//-------DEFINE REMOVE CARD FUNCTION----------//
function removeCard(event:ObjectContainer3D):void{
cardsholder.removeChild(event);
totalchildren--;
if(totalchildren==0){
trace("WIN");
}
}
//---------------RENDER EVERYTHING-------------//
function startToRender():void{
addEventListener(Event.ENTER_FRAME, render);
}
function render(event:Event):void{
view.render();
}
//------------CALL ALL THE FUNCTIONS---------//
initAway3D();
allCards();
randomizeCards();
addCardsToScene();
startToRender();
import away3d.cameras.*;
import away3d.containers.*;
import away3d.materials.*;
import away3d.primitives.Plane;
import away3d.containers.ObjectContainer3D;
import away3d.core.math.Number3D;
//------IMPORT TWEENERS-------//
import caurina.transitions.*;
import flash.display.InteractiveObject;
import flash.display.Bitmap;
import flashx.textLayout.conversion.PlainTextExporter;
import flash.display.BitmapData;
import flash.events.Event;
import flash.utils.Timer;
import flash.events.TimerEvent;
//-------SET UP VARIABLES------//
//variable for the scene
var scene:Scene3D;
//variable for camera - angle
var camera:Camera3D;
//variable for view
var view:View3D;
//number of cards that you want to have
var totalchildren:int = 10;
//set up array to hold the cards
var cards:Array;
//array to hold the front of the cards
var textures:Array = [new texture0(0,0),
new texture1(0,0),
new texture2(0,0),
new texture3(0,0),
new texture4(0,0)];
//get the back of the cards
var backtexture:BitmapData = new CardBack(0,0);
//set width and height
var cardwidth:Number = 150;
var cardheight:Number = 205;
//distance between each card
var xoffset:Number = 10;
var yoffset:Number = 10;
//create an object to hold all the cards
var cardsholder:ObjectContainer3D;
//create the sides of the selected card
var selectedCard1:Plane;
var selectedCard2:Plane;
//disable mouse events - gives us control over every card
var disableMouseEvents:Boolean = false;
//------------FUNCTIONS-------------//
//----------Establish Scene/Viewing Area---------//
function initAway3D():void{
var scene = new Scene3D;
var camera = new Camera3D;
//position the camera
camera.y = 1000; //works like a zoom
camera.z = 0;
camera.lookAt(new Number3D(0,0,0));
//create and position the view
var view = new View3D({scene:scene, camera:camera});
//put the view on the stage
view.x = stage.stageWidth/2;
view.y = stage.stageHeight/2;
addChild(view);
}
//-----Create One of the Carfds------//
function createCard(texture:BitmapData, id:int):ObjectContainer3D{
var card:ObjectContainer3D = new ObjectContainer3D();
//var for the front
var front:Plane = new Plane({width:cardwidth, height:cardheight, material:new BitmapMaterial(texture,{smmoth:true})});
//var for the back
var back:Plane = new Plane({width:cardwidth, height:cardheight, material:new BitmapMaterial(backtexture,{smmoth:true})});
//positioning
front.rotationY = 180;
back.rotationZ = 180;
back.rotationY = 180;
//access id - use to determine the matches
back.extra = {};
back.extra.id = id;
back.extra. targetCard = card;
back.addOnMouseDown(onBackClicked);
//spin moves
card.rotationZ = 180;
card.addChild(front);
card.addChild(back);
card.ownCanvas = true;
//create the card
return card;
}
//--------Create the rest of the cards----------//
function allCards():void{
var cards = new Array();
//(starts at 0, goes until it reaches the end of array, increases by 1)
for(var i:int=0; i<textures.length; i++){
//create the first card
var card1:ObjectContainer3D = createCard(textures[i],i);
//create it's match
var card2:ObjectContainer3D = createCard(textures[i],i);
//create it's match
//var card3:ObjectContainer3D = create Card(textures[i],i);
//create it's match
//var card4:ObjectContainer3D = create Card(textures[i],i);
cards.push(card1);
cards.push(card2);
}
}
//-------- SHUFFLE/RANDOMIZE CARDS---------//
function randomizeCards():void{
//var to hold random order of cards
var newArray:Array = new Array();
while(cards.length>0){
newArray.push(cards.splice(Math.floor(Math.random()*cards.length),1)[0]);
}
cards = newArray;
}
//-------Add Cards to the Scene-------//
function addCardsToScene():void{
//var that holds everything
var cardsholder = new ObjectContainer3D();
//how many cards we currently have
var cardNumber:int = 0;
//create the grid
//vertical part of the grid - number of rows
for(var i:int = 0; i<2; i++){
//number of columns
for(var b:int = 0; b<5; b++){
cards[cardNumber].x = b*(cardwidth+xoffset)+cardwidth/2;
cards[cardNumber].z = i*(cardheight+yoffset)+cardheight/2;
cardsholder.addChild(cards[cardNumber]);
cardNumber++;
}
}
var cardswidth:Number = (5*cardwidth) + (4*xoffset);
var cardsheight:Number = (2*cardheight) + (1*yoffset);
//position
cardsholder.x = cardswidth/2;
cardsholder.y = cardsheight/2;
//add to the scene
scene.addChild(cardsholder);
}
//-------------------CLICK FUNCTIONS-----------------//
function onBackClicked(event:Event):void{
if(disableMouseEvents==false){
if(selectedCard1==null){
selectedCard1 = event.currentTarget as Plane;
}
else{
if(selectedCard2==null){
selectedCard2=event.currentTarget as Plane;
waitForDecision();
disableMouseEvents=true;
}
}
Tweener.addTween(event.currentTarget.extra.targetCard,{y:50, rotationZ:0, time:1});
}
}
//---------DEFINE THE DECISION-----------//
function waitForDecision():void{
var timer:Timer = new Timer(1000, 1);
timer.addEventListener(TimerEvent.TIMER, makeDecision);
timer.start();
}
//----------WHAT TO DO IF RIGHT OR WRONG-----------//
function makeDecision(event:Event):void{
//if it matches = right
if(selectedCard1.extra.id == selectedCard2.extra.id){
Tweener.addTween(selectedCard1.extra.targetCard,{alpha:0, time:0.3, onComplete:removeCard, onCompleteParams:[selectedCard1.extra.targetCard]});
Tweener.addTween(selectedCard2.extra.targetCard,{alpha:0, time:0.3, onComplete:removeCard, onCompleteParams:[selectedCard1.extra.targetCard]});
}
//if its wrong
else{
Tweener.addTween(selectedCard1.extra.targetCard,{y:0, rotationZ:180, time:1});
Tweener.addTween(selectedCard2.extra.targetCard,{y:0, rotationZ:180, time:1});
}
//reset variables for mouse clicks, and card slection
disableMouseEvents = false;
selectedCard1=null;
selectedCard2=null;
}
//-------DEFINE REMOVE CARD FUNCTION----------//
function removeCard(event:ObjectContainer3D):void{
cardsholder.removeChild(event);
totalchildren--;
if(totalchildren==0){
trace("WIN");
}
}
//---------------RENDER EVERYTHING-------------//
function startToRender():void{
addEventListener(Event.ENTER_FRAME, render);
}
function render(event:Event):void{
view.render();
}
//------------CALL ALL THE FUNCTIONS---------//
initAway3D();
allCards();
randomizeCards();
addCardsToScene();
startToRender();
- //--------IMPORT AWAY 3D-------//
- import away3d.cameras.*;
- import away3d.containers.*;
- import away3d.materials.*;
- import away3d.primitives.Plane;
- import away3d.containers.ObjectContainer3D;
- import away3d.core.math.Number3D;
- //------IMPORT TWEENERS-------//
- import caurina.transitions.*;
- import flash.display.InteractiveObject;
- import flash.display.Bitmap;
- import flashx.textLayout.conversion.PlainTextExporter;
- import flash.display.BitmapData;
- import flash.events.Event;
- import flash.utils.Timer;
- import flash.events.TimerEvent;
- //-------SET UP VARIABLES------//
- //variable for the scene
- var scene:Scene3D;
- //variable for camera - angle
- var camera:Camera3D;
- //variable for view
- var view:View3D;
- //number of cards that you want to have
- var totalchildren:int = 10;
- //set up array to hold the cards
- var cards:Array;
- //array to hold the front of the cards
- var textures:Array = [new texture0(0,0),
- new texture1(0,0),
- new texture2(0,0),
- new texture3(0,0),
- new texture4(0,0)];
- //get the back of the cards
- var backtexture:BitmapData = new CardBack(0,0);
- //set width and height
- var cardwidth:Number = 150;
- var cardheight:Number = 205;
- //distance between each card
- var xoffset:Number = 10;
- var yoffset:Number = 10;
- //create an object to hold all the cards
- var cardsholder:ObjectContainer3D;
- //create the sides of the selected card
- var selectedCard1:Plane;
- var selectedCard2:Plane;
- //disable mouse events - gives us control over every card
- var disableMouseEvents:Boolean = false;
- //------------FUNCTIONS-------------//
- //----------Establish Scene/Viewing Area---------//
- function initAway3D():void{
- var scene = new Scene3D;
- var camera = new Camera3D;
- //position the camera
- camera.y = 1000; //works like a zoom
- camera.z = 0;
- camera.lookAt(new Number3D(0,0,0));
- //create and position the view
- var view = new View3D({scene:scene, camera:camera});
- //put the view on the stage
- view.x = stage.stageWidth/2;
- view.y = stage.stageHeight/2;
- addChild(view);
- }
- //-----Create One of the Carfds------//
- function createCard(texture:BitmapData, id:int):ObjectContainer3D{
- var card:ObjectContainer3D = new ObjectContainer3D();
- //var for the front
- var front:Plane = new Plane({width:cardwidth, height:cardheight, material:new BitmapMaterial(texture,{smmoth:true})});
- //var for the back
- var back:Plane = new Plane({width:cardwidth, height:cardheight, material:new BitmapMaterial(backtexture,{smmoth:true})});
- //positioning
- front.rotationY = 180;
- back.rotationZ = 180;
- back.rotationY = 180;
- //access id - use to determine the matches
- back.extra = {};
- back.extra.id = id;
- back.extra. targetCard = card;
- back.addOnMouseDown(onBackClicked);
- //spin moves
- card.rotationZ = 180;
- card.addChild(front);
- card.addChild(back);
- card.ownCanvas = true;
- //create the card
- return card;
- }
- //--------Create the rest of the cards----------//
- function allCards():void{
- var cards = new Array();
- //(starts at 0, goes until it reaches the end of array, increases by 1)
- for(var i:int=0; i<textures.length; i++){
- //create the first card
- var card1:ObjectContainer3D = createCard(textures[i],i);
- //create it's match
- var card2:ObjectContainer3D = createCard(textures[i],i);
- //create it's match
- //var card3:ObjectContainer3D = create Card(textures[i],i);
- //create it's match
- //var card4:ObjectContainer3D = create Card(textures[i],i);
- cards.push(card1);
- cards.push(card2);
- }
- }
- //-------- SHUFFLE/RANDOMIZE CARDS---------//
- function randomizeCards():void{
- //var to hold random order of cards
- var newArray:Array = new Array();
- while(cards.length>0){
- newArray.push(cards.splice(Math.floor(Math.random()*cards.length),1)[0]);
- }
- cards = newArray;
- }
- //-------Add Cards to the Scene-------//
- function addCardsToScene():void{
- //var that holds everything
- var cardsholder = new ObjectContainer3D();
- //how many cards we currently have
- var cardNumber:int = 0;
- //create the grid
- //vertical part of the grid - number of rows
- for(var i:int = 0; i<2; i++){
- //number of columns
- for(var b:int = 0; b<5; b++){
- cards[cardNumber].x = b*(cardwidth+xoffset)+cardwidth/2;
- cards[cardNumber].z = i*(cardheight+yoffset)+cardheight/2;
- cardsholder.addChild(cards[cardNumber]);
- cardNumber++;
- }
- }
- var cardswidth:Number = (5*cardwidth) + (4*xoffset);
- var cardsheight:Number = (2*cardheight) + (1*yoffset);
- //position
- cardsholder.x = cardswidth/2;
- cardsholder.y = cardsheight/2;
- //add to the scene
- scene.addChild(cardsholder);
- }
- //-------------------CLICK FUNCTIONS-----------------//
- function onBackClicked(event:Event):void{
- if(disableMouseEvents==false){
- if(selectedCard1==null){
- selectedCard1 = event.currentTarget as Plane;
- }
- else{
- if(selectedCard2==null){
- selectedCard2=event.currentTarget as Plane;
- waitForDecision();
- disableMouseEvents=true;
- }
- }
- Tweener.addTween(event.currentTarget.extra.targetCard,{y:50, rotationZ:0, time:1});
- }
- }
- //---------DEFINE THE DECISION-----------//
- function waitForDecision():void{
- var timer:Timer = new Timer(1000, 1);
- timer.addEventListener(TimerEvent.TIMER, makeDecision);
- timer.start();
- }
- //----------WHAT TO DO IF RIGHT OR WRONG-----------//
- function makeDecision(event:Event):void{
- //if it matches = right
- if(selectedCard1.extra.id == selectedCard2.extra.id){
- Tweener.addTween(selectedCard1.extra.targetCard,{alpha:0, time:0.3, onComplete:removeCard, onCompleteParams:[selectedCard1.extra.targetCard]});
- Tweener.addTween(selectedCard2.extra.targetCard,{alpha:0, time:0.3, onComplete:removeCard, onCompleteParams:[selectedCard1.extra.targetCard]});
- }
- //if its wrong
- else{
- Tweener.addTween(selectedCard1.extra.targetCard,{y:0, rotationZ:180, time:1});
- Tweener.addTween(selectedCard2.extra.targetCard,{y:0, rotationZ:180, time:1});
- }
- //reset variables for mouse clicks, and card slection
- disableMouseEvents = false;
- selectedCard1=null;
- selectedCard2=null;
- }
- //-------DEFINE REMOVE CARD FUNCTION----------//
- function removeCard(event:ObjectContainer3D):void{
- cardsholder.removeChild(event);
- totalchildren--;
- if(totalchildren==0){
- trace("WIN");
- }
- }
- //---------------RENDER EVERYTHING-------------//
- function startToRender():void{
- addEventListener(Event.ENTER_FRAME, render);
- }
- function render(event:Event):void{
- view.render();
- }
- //------------CALL ALL THE FUNCTIONS---------//
- initAway3D();
- allCards();
- randomizeCards();
- addCardsToScene();
- startToRender();
Moderator Remark: Inserted code in the topic with [actionscript] bbcode. Better chance of replies this way.
- Anonymous
- Bot


- Registrado: 25 Feb 2008
- Mensajes: ?
- Loc: Ozzuland
- Status: Online
Octubre 18th, 2011, 4:25 pm
- Bigwebmaster
- Site Admin


- Registrado: Dic 20, 2002
- Mensajes: 8925
- Loc: Seattle, WA & Phoenix, AZ
- Status: Offline
¿El error que está recibiendo, sucede a decir qué número de línea que es para?
Ozzu Hosting - Want your website on a fast server like Ozzu?
- wjordan87
- Born


- Registrado: Oct 18, 2011
- Mensajes: 2
- Status: Offline
- Bigwebmaster
- Site Admin


- Registrado: Dic 20, 2002
- Mensajes: 8925
- Loc: Seattle, WA & Phoenix, AZ
- Status: Offline
La vista no familiarizado con este error, pero y parece que otros que tuve este problema solución poniendo un cuadro vacío al comienzo de los swf cargado. Probar y ver si no hace nada. Algunos otros mencionan que los detectores de eventos estaban causando problemas por alguna razón.
Esto es un SWF externo llamado o puede explicar cómo debe para funcionar este SWF. Si no soy capaz de ayudarle proporcionaría información suficiente para alguien con más experiencia con ActionScript para ayudarle.
Esto es un SWF externo llamado o puede explicar cómo debe para funcionar este SWF. Si no soy capaz de ayudarle proporcionaría información suficiente para alguien con más experiencia con ActionScript para ayudarle.
Ozzu Hosting - Want your website on a fast server like Ozzu?
Página 1 de 1
Para responder a este tema que necesita para ingresar o registrarse. Es gratis.
Publicar Información
- Total de mensajes en este tema: 4 mensajes
- Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 53 invitados
- No puede abrir nuevos temas en este Foro
- No puede responder a temas en este Foro
- No puede editar sus mensajes en este Foro
- No puede borrar sus mensajes en este Foro
- No puede enviar adjuntos en este Foro
