Comunidad de diseño web y desarrollo en internet online

Foco sobre un Mc

Citar            
MensajeEscrito el 20 Sep 2009 04:33 pm
Hola a todos!
A ver si alguien me puede ayudar un poco.
Resulta que tengo un Mc del que tengo varias copias. Éstos estan en lo que en AS 2 es el _root (creo que en AS3, que es con lo que estoy trabajando, se llama stage ¿es posible?). Lo que ocurre es que me gustaria poder hacer clic sobre uno de ellos, de modo que reciva el foco, y mediante un menu desplegable o unos radiobuttons elegir el fotograma del Mc seleccionado que quiero que se vea...
No se si tengo que añadir alguna libreria, por ejemplo,

Código ActionScript :

import flash.events.FocusEvent;


ni tampoco se si tengo que trabajar con algo llamado IFocusManagerComponent que me ha salido al buscar como hacerlo.

Los Mc los tengo instanciados con una pequeña clase que me he creado para probar. Es esta:

Código ActionScript :

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

   public class cuadrado3D extends MovieClip
   {
      public function cuadrado3D():void 
      {
         addEventListener(MouseEvent.CLICK, onClick);
         //addEventListener(FocusEvent.FOCUS_IN, foco);
         //no se si el Listener que tengo que poner es el del raton o el del foco 
      }
      
      private function onClick(evento:Event):void
      {
         setFocus();
      }
   }
}


y mi codigo en el 1er frame del flash es este:

Código ActionScript :

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

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

var c00:cuadrado3D = new cuadrado3D();
addChild(c00);

// Crear un objeto detector.

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

function nivel(evento:MouseEvent):void
{
   stage.Selection.gotoAndStop(int(evento.target.label));
}


El fallo que me da es --> 1119: Acceso a una propiedad Selection posiblemente no definida mediante una referencia con tipo estático flash.display:Stage.

Por SeiyaJapon

54 de clabLevel



 

España

firefox
Citar            
MensajeEscrito el 20 Sep 2009 04:38 pm
No se que a ocurrido, pero mi post era un poquito mas largo...

Bueno solo hos decia que como creia que lo primero por lo que daba fallo era el contenido de la funcion "nivel", habia dejado como comentario todo eso, es decir

function nivel(evento:MouseEvent):void
{
//stage.Selection.gotoAndStop(int(evento.target.label));
}

y entonces me daba otro fallo:
1180: Llamada a un método setFocus posiblemente no definido.

Por SeiyaJapon

54 de clabLevel



 

España

firefox
Citar            
MensajeEscrito el 20 Sep 2009 11:53 pm
Bueno, creo que he solucionado lo de darle el foco.
He cambiado los metodos de la clase de este modo:

public function cuadrado3D():void
{
addEventListener(MouseEvent.CLICK, onClick);
/*addEventListener(FocusEvent.FOCUS_IN, foco);*/
}

private function onClick(evento:Event):void
{
stage.focus = this;
}

y en el codigo del flash he quitado esto

var c00:cuadrado3D = new cuadrado3D();
addChild(c00);

porque ya lo habia referenciado desde las propiedades.
Pero ahora el unico problema es que no se como hacer para que cuando le doy click sobre un radiobutton me salte el movieclip seleccionado al frame que indica éste.
Si a alguien se el ocurre algo que me lo diga, por favor XD

Por SeiyaJapon

54 de clabLevel



 

España

firefox

 

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