Comunidad de diseño web y desarrollo en internet online

Ayuda con Sprites y MC's

Citar            
MensajeEscrito el 18 Jun 2008 09:23 pm
Hola...tanto tiempo sin consultarles...tengo el siguiente problema en esta funcion:

Código :

function btns():Sprite {
   var sub:Sprite = new Sprite();
   var sm:int = 0;

   while (sm<3) {
      var smboton:botonSub = new botonSub("hola");
      sub.addChild(smboton);
      smboton.y = (smboton.y + 20)*sm;
      sm++;
   }
   return sub;
}
btns();


Se supone q deberia dar el Sprite sub con los botones, cosa que no hace, no muestra nada ni errores, lo mas probable es que este aplicando mal la funcion, no lo se.

Sin embargo esto si funciona:

Código :

function btns():void {
   var sub:Sprite = new Sprite();
   var sm:int = 0;

   while (sm<3) {
      var smboton:botonSub = new botonSub("hola");
      sub.addChild(smboton);
      smboton.y = (smboton.y + 20)*sm;
      sm++;
   }
   addChild(sub);
}
btns();


Recurro a uds, ya que uds siempre me sacan de apuros :) y espero que esta no sea la excepcion.

Por JavierS

37 de clabLevel



Genero:Masculino  

Viña/Chile

firefox
Citar            
MensajeEscrito el 18 Jun 2008 09:36 pm

Código :

function btns():Sprite 

le estas diciendo que retorna un Sprite ;)

Código :

var xxx:Sprite = btns();
this.addChild(xxx)

Por eldervaz

BOFH

10964 de clabLevel

39 tutoriales
56 articulos

Genero:Masculino  

en algún lugar del mundo

clabbrowser
Citar            
MensajeEscrito el 18 Jun 2008 09:44 pm
Perfecto, muchas gracias, pero quizas me explique pesimo, ya que necesito que utilizar esta funcion dentro de otra, o por decirlo de otra manera, un contenedor va a mostrar lo que genere esa funcion. Ahora puede que funcione, diciendole que retorne un Sprite esa funcion(btns) , pero lo que necesito de ese Sprite(generado) es la propiedad Height, la cual no sabria como sacarla.

En realidad todo seria algo asi:

Código :

import botonSimple;
import botonSub;

var boton:botonSimple = new botonSimple(sub_btns,0,0,"btn padre!!!");
addChild(boton);

function sub_btns():Sprite {
   var sub:Sprite = new Sprite();
   var sm:int = 0;
   var subheight = sub.height;

   while (sm<3) {
      var smboton:botonSub = new botonSub("hola");
      sub.addChild(smboton);
      smboton.y = (smboton.y + 20)*sm;
      sm++;
   }
   return sub;
}

Por JavierS

37 de clabLevel



Genero:Masculino  

Viña/Chile

firefox
Citar            
MensajeEscrito el 18 Jun 2008 10:47 pm
es que al crear un Sprite no tiene ancho ni alto, a menos que crees algo dentro:

Código :

function sub_btns():Sprite {
   var sub:Sprite = new Sprite();
   sub.graphics.beginFill(0xff0000,1);
   sub.graphics.drawRect(0,0,20,20);
   sub.graphics.endFill();
   var sm:int = 0;
   var subheight = sub.height;
   trace(subheight );
   while (sm<3) {
      var smboton:botonSub = new botonSub();
      sub.addChild(smboton);
      smboton.y = (smboton.y + 20)*sm;
      sm++;
   }
   return sub;
}
var xxx:Sprite = sub_btns();
this.addChild(xxx);

Por eldervaz

BOFH

10964 de clabLevel

39 tutoriales
56 articulos

Genero:Masculino  

en algún lugar del mundo

clabbrowser
Citar            
MensajeEscrito el 18 Jun 2008 11:00 pm
No amigo, sigo en lo mismo

ReferenceError: Error #1069: No se encontró la propiedad height en builtin.as$0.MethodClosure y no hay ningún valor predeterminado.

Por JavierS

37 de clabLevel



Genero:Masculino  

Viña/Chile

firefox
Citar            
MensajeEscrito el 18 Jun 2008 11:04 pm
ah ok, si estas usando una clase, AGREGA la propiedad

Código :

public var height:Number;

Por eldervaz

BOFH

10964 de clabLevel

39 tutoriales
56 articulos

Genero:Masculino  

en algún lugar del mundo

clabbrowser
Citar            
MensajeEscrito el 18 Jun 2008 11:13 pm
No amigo, aun no.

Código :

import botonSimple;
import botonSub;
import flash.display.*;
import flash.events.*;

var boton:botonSimple = new botonSimple(sub_menu,0,0,"texto boton");
addChild(boton);

function sub_menu():Sprite {
   var sub:Sprite = new Sprite();   
   var sm:int = 0;
   var n:int = 3;

   while (sm<n) {
      var smboton:botonSub = new botonSub("texto sub_boton");
      sub.addChild(smboton);
      smboton.y = (smboton.y + 20)*sm;
      sm++;
   }
   sub.height = 20 * n;
   return sub;
}


La clase botonSimple, recibe un mc o sprite y lo muestra, ese es el objetivo de la funcion sub_menu, crear ese sprite para que lo muestra, ya que es un sprite que contiene otros sprites (botones) dentro.

Por JavierS

37 de clabLevel



Genero:Masculino  

Viña/Chile

firefox
Citar            
MensajeEscrito el 24 Jun 2008 09:50 am
Una parte que no entiendo es para que le das de alto a sub 20 * n si le has añadido 3 botones dentro separados por 20 pixeles por lo tanto su alto debería ser 20 * n donde n ya tiene valor de 3, es decir que tendrá 60 píxeles de alto.

De todas formas no se necesita añadir un displayObject a la escena para conocer sus propiedades, desde la hora que se crea ya puedes acceder a todas las propiedades de este objeto.

por ejemplo:

Código :

var sub:Sprite = new Sprite();
sub.height = 200;

trace(sub.height);


le he dado propiedad de height al sprite y se la he pedido, por supuesto que devolverá 0 porque no tiene nada dentro, pero se puede acceder a él.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox

 

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