Comunidad de diseño web y desarrollo en internet online

Variables o Propiedades en MovieClip con ActionScript 3.0

Citar            
MensajeEscrito el 01 Mar 2008 06:30 pm
Hola, hace unos días estoy con una duda que creo es demasiado tonta pero es momento de preguntar :P

Hace un tiempo utilizaba algo así:

_root.attachMovie("mcBoton", "boton1", this.getNextHighestDepth());
_root["boton1"]._x = 50;
_root["boton1"]._y = 30;
_root["boton1"].texto = "Titulo del Boton";
_root["boton1"].linkurl = "http://www.urlquellamaelboton.com/";

o sea tenia un mcBoton que era un MovieClip, que mostraba un texto como todo botón y llamaba una URL, la propiedad texto, era un campo texto con nombre de instancia texto, y linkurl no existía como tal, se creaba en ese momento (a lo bestia).

Con esto lograba un menú dinámico reutilizando ese botón tantas veces como fuera necesario, incluso leyéndolo de un XML, y luego en el evento onRelease lo ejecutaba así:

getURL(this.linkurl, "_blank");

Bueno, en AS3.0 hice todo, y va perfecto, pero :oops: no logro dar con como crear "linkurl" o sea una variable, o propiedad de ese MC pero que no sera ningún objeto dibujado en el MC si no simplemente un valor que lo acompañe, y bueno pues eso, espero se entienda y a alguien se le ocurra una solución, que creo es tan sencilla que me llevo mas tiempo del que pensaba :)

Por elQuique

25 de clabLevel



Genero:Masculino  

Florida, Uruguay

firefox
Citar            
MensajeEscrito el 01 Mar 2008 07:53 pm
MovieClip es un objeto dynamic asi que le puedes colocar los metodos y propiedades que quieras.. asegurate que sea movieClip o extienda de movieclip o que la clase sea dynamic.....

Chao..

Por bipsa

628 de clabLevel

1 tutorial
1 articulo

Genero:Masculino  

Colombia

safari
Citar            
MensajeEscrito el 01 Mar 2008 09:54 pm
bipsa, eso lo se pero el tema es como :), lo hice mil veces con AS2.0 pero en AS3.0 me trae loco.

Por elQuique

25 de clabLevel



Genero:Masculino  

Florida, Uruguay

firefox
Citar            
MensajeEscrito el 01 Mar 2008 10:10 pm
Imagina esto:

var botonMenu:MovieClip = new MovieClip();
var texto:TextField = new TextField();
texto.text = "Juanito";
botonMenu.x = 30;
botonMenu.y = 15;
botonMenu.addChild(texto);

hasta ahí todo super, pero necesito que ese botonMenu tenga un campito ID para luego leerlo en la ejecucion de uno de sus eventos y actuar en consecuencia, la logica me dice esto:

var id:Number;

id = 1;
botonMenu.addChild(id);

pero claro me dice que id no es algo visible en el objeto blablalbalb, y no es un elemento visible ya que no sera un campo texto, ni rectángulo ni circulo, es un valor, solo eso, y bueno no le encuentro la forma de adjuntarlo.

Por elQuique

25 de clabLevel



Genero:Masculino  

Florida, Uruguay

firefox
Citar            
MensajeEscrito el 02 Mar 2008 04:34 pm

elQuique escribió:

bipsa, eso lo se pero el tema es como :), lo hice mil veces con AS2.0 pero en AS3.0 me trae loco.



tu codigo no tiene errores puedes hacerlos sin ningun lio.... pega el siguiente codigo en un fla y vas a ver que funciona sin problema..

Código :

var mc:MovieClip = new MovieClip();
mc.pajarito = "POLLITO";
mc.x = mc.y = 3;
this.addChild(mc);
trace(mc.pajarito);



Este tipo de cosas solo las debes hacer si son necesarias......


Saludos

Por bipsa

628 de clabLevel

1 tutorial
1 articulo

Genero:Masculino  

Colombia

safari
Citar            
MensajeEscrito el 02 Mar 2008 04:40 pm

elQuique escribió:

Imagina esto:

var botonMenu:MovieClip = new MovieClip();
var texto:TextField = new TextField();
texto.text = "Juanito";
botonMenu.x = 30;
botonMenu.y = 15;
botonMenu.addChild(texto);

hasta ahí todo super, pero necesito que ese botonMenu tenga un campito ID para luego leerlo en la ejecucion de uno de sus eventos y actuar en consecuencia, la logica me dice esto:

var id:Number;

id = 1;
botonMenu.addChild(id);

pero claro me dice que id no es algo visible en el objeto blablalbalb, y no es un elemento visible ya que no sera un campo texto, ni rectángulo ni circulo, es un valor, solo eso, y bueno no le encuentro la forma de adjuntarlo.



Juemadre no vi este post.... tu codigo si tiene lios

Código :

botonMenu.addChild(id);



Mira el metodo addChild el parametro es un DisplayObject, no puedes meterle un id :S

mira el codigo que te mande en el anterior post, y si supieras que es una clase dinamica, ya tu problema estaria solucionado

Saludos

Por bipsa

628 de clabLevel

1 tutorial
1 articulo

Genero:Masculino  

Colombia

safari
Citar            
MensajeEscrito el 04 Mar 2008 02:49 pm
Bueno en realidad quería evitar el tener que realizar una codificación de estos botones, pero no tuve alternativa, por tanto lo que hice fue crear una clase oyBoton:

Código :

package oyClases {

   import flash.display.SimpleButton;
   
   public class oyBoton extends SimpleButton {

      public var id:Number = -1; // Declare ese id que era necesario
      
      public function oyBoton(btnLabelText:String) {
         upState = new oyBotonEstado(0xFFFFFF, btnLabelText);
         overState = new oyBotonEstado(0xF6F6F6, btnLabelText);
         downState = new oyBotonEstado(0xF5F5F5, btnLabelText);
         hitTestState = upState;
         useHandCursor = true;
      }
   }
}


Y declare ese id que necesitaba tener en cada botón, luego los utilizo así:

Código :

var botonMenu:oyBoton = new oyBoton("Botón cualquiera");
botonMenu.x = 0;
botonMenu.y = 0;
botonMenu.id = 12; // un id cualquiera
botonMenu.addEventListener(MouseEvent.CLICK, desplegarSubMenu);


de manera que en el evento pueda actuar en consecuencia, cargando el XML necesario según el ID:

Código :

function desplegarSubMenu(event:Event):void {
       // Cargo el XML segun el ID del botón
   cargarMenuXML(event.currentTarget.id);
}


ojalá le sirva a alguien mas :)

Por elQuique

25 de clabLevel



Genero:Masculino  

Florida, Uruguay

firefox
Citar            
MensajeEscrito el 04 Mar 2008 06:50 pm
te toco hacer un clase para contener solo esa propiedad.... raro... si ya tenias la solucion...

Saludos

Por bipsa

628 de clabLevel

1 tutorial
1 articulo

Genero:Masculino  

Colombia

safari
Citar            
MensajeEscrito el 04 Mar 2008 07:32 pm
Si, yo quería evitar la clase, imagine desde el comienzo que con la clase no había problemas ya que era heredar y extender pero quería evitarlo, como no hubo soluciones y mi cerebelo no se le ocurrió nada me fui a la fácil jaja :) capaz a alguien se le ocurra algo mas !!

Por elQuique

25 de clabLevel



Genero:Masculino  

Florida, Uruguay

firefox

 

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