Comunidad de diseño web y desarrollo en internet online

Datos no validos

Citar            
MensajeEscrito el 22 Sep 2009 03:28 pm
Hola gente!
Tengo un problema que no se resolver.
Tengo un .fla con este codigo:

Código ActionScript :

var objeto:ClasePrincipal = new ClasePrincipal();
bombilla.label = "Encender";
nivel0.label = "0";
nivel1.label = "1";
nivel2.label = "2";
nivel0.groupName = "miGrupo";
nivel1.groupName = "miGrupo";
nivel2.groupName = "miGrupo";

// Colocar radiobuttons en el escenario.
nivel1.move(0, nivel0.y + nivel0.height);
nivel2.move(0, nivel1.y + nivel1.height);

nivel0.addEventListener(MouseEvent.CLICK, niveles);
nivel1.addEventListener(MouseEvent.CLICK, niveles);
nivel2.addEventListener(MouseEvent.CLICK, niveles);


y tengo dos clases una que importo y la otra como Document class
Document class

Código ActionScript :

package
{
   import fl.controls.RadioButtonGroup;
   import flash.events.MouseEvent;
   import flash.events.Event;
   import flash.display.MovieClip;
   import fl.controls.RadioButton;
   import fl.controls.CheckBox;
   import clases.cuadrado3D;

   public class ClasePrincipal extends MovieClip
   {
      public var matrizCasillas:Array = new Array(8);
      
      public function ClasePrincipal():void
      {
         this.addEventListener(Event.ENTER_FRAME, on_enterFrame);
      }
      
      private function on_enterFrame(evento:Event):void
      {
         for (var i = 0; i < matrizCasillas.length; i++)
         {
            for (var j = 0; i < matrizCasillas.length; j++)
            {
               matrizCasillas[i] = new Array(8);
            }
         }
      
         matrizCasillas[0][0].push(c00);
         trace(matrizCasillas);
      }
      
   }
}


y la otra clase que importo es esta:

Código ActionScript :

package clases
{
   import flash.display.MovieClip;
   import flash.events.FocusEvent;

   public class cuadrado3D extends MovieClip
   {
      import flash.events.*;
      
      var posicionCuadrado3D:int;
      var seleccionado:Boolean;

      public function cuadrado3D():void 
      {
         addEventListener(MouseEvent.CLICK, onClick);
      }
      
      private function onClick(evento:Event):void
      {
         stage.focus = this;
      }
   }
}


En verdad, no quiero que haga nada (todavia), por eso no se realiza ninguna accion de ninguna manera, pero es que cuando va a cargar me sale este error que no se como resolver:

Error: Error #2136: El archivo SWF file:///Macintosh%20HD/Users/.../miflash.swf contiene datos no válidos.

¿Alguien me puede ayudar, por favor?

Por SeiyaJapon

54 de clabLevel



 

España

firefox
Citar            
MensajeEscrito el 22 Sep 2009 04:10 pm
Creo que no puedes tener como document Class una clase y tener código en un frame. si tengo razón(*), deberías poner en el primer frame

Código ActionScript :

import ClasePrincipal
...resto de código...

y dejar en blanco lo del document Class.

ó incluir el código del primer frame en la función constructora -en la función ClasePrincipal()-

(*)He puesto muchas dudas, pero creo que es eso

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Sep 2009 10:09 pm
No he probado todo lo que me has dicho. He hecho lo que me has comentado sobre colocar todo en el constructor, pero no me funcionaba asi. Lo que he hecho es dejar en el frame solo una funcion y los Listener de los radiobuttons, y lo demas en el Document class, pero no dentro del constructor, sino que lo he puesto fuera del package:

package
{
import fl.controls.RadioButtonGroup;
import fl.controls.RadioButton;
import fl.controls.CheckBox;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.display.MovieClip;
import clases.cuadrado3D;

public class ClasePrincipal extends MovieClip
{
public var matrizCasillas:Array = new Array(8);

public function ClasePrincipal():void
{
this.addEventListener(Event.ENTER_FRAME, on_enterFrame);
}

private function on_enterFrame(evento:Event):void
{
for (var i = 0; i < matrizCasillas.length; i++)
{
matrizCasillas[i] = new Array(8);
}

/*matrizCasillas[0][0].push(c00);
trace(matrizCasillas);*/
}

}

}
/* Se requiere Componente RadioButton en la biblioteca */
import fl.controls.RadioButtonGroup;
import fl.controls.RadioButton;
import fl.controls.CheckBox;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.display.MovieClip;
import clases.cuadrado3D;

var objeto:ClasePrincipal = new ClasePrincipal();
var bombilla:CheckBox = new CheckBox();
var nivel0:RadioButton = new RadioButton();
var nivel1:RadioButton = new RadioButton();
var nivel2:RadioButton = new RadioButton();

bombilla.label = "Encender";
nivel0.label = "0";
nivel1.label = "1";
nivel2.label = "2";
nivel0.groupName = "miGrupo";
nivel1.groupName = "miGrupo";
nivel2.groupName = "miGrupo";

// Colocar botones de opción en el escenario.
nivel1.move(0, nivel0.y + nivel0.height);
nivel2.move(0, nivel1.y + nivel1.height);
}

Hasta aqui bien, pero en el codigo que acabo de poner tiene una funcion en la que el array que creo al principio de la clase lo convierto en un array bidimensional, y al primer elemento le doy un valor.
La zona de darle un valor al primer elemento (al 0,0) y el "trace" esta comentado para que no lo reconozca, porque si lo dejo como codigo me da este fallo:

TypeError: Error #1010: Un término no está definido y no tiene propiedades.
at ClasePrincipal/on_enterFrame()

¿¿¿Que hago mal y no me doy cuenta???

Por SeiyaJapon

54 de clabLevel



 

España

firefox
Citar            
MensajeEscrito el 22 Sep 2009 10:11 pm
Sorry... no habia pensado en los emoticonos...

Por SeiyaJapon

54 de clabLevel



 

España

firefox
Citar            
MensajeEscrito el 22 Sep 2009 10:19 pm
El fallo es que para añadir el objeto c00 como elemento del array hay que ponerlo asi, no con el .push:

matrizCasillas[0][0] = c00;

Por SeiyaJapon

54 de clabLevel



 

España

firefox
Citar            
MensajeEscrito el 23 Sep 2009 06:43 am
Perdón por no haber leído el código. Vista tu solución, supongo que lo que querías hacer con el push es

Código ActionScript :

matrizCasillas[0].push(c00)

NOTA:Si quieres poner código, encierra el texto entre [ a s ] y [/ a s ] -sin espacios-

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Sep 2009 11:52 pm
Hola! Acabo de leer tu respuesta...
En realidad no quiero poner c00 en el elemento 0. Como quiero que se un array bidimensional lo que queria era ponerlo en el 0,0, que no es exactamente lo mismo. De todos modos muchisimas gracias! ^_^ (y si piensas que lo estoy haciendo mal dimelo ¿vale? XD)

Por SeiyaJapon

54 de clabLevel



 

España

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.