La nueva clase simpleButton de actionscript 3 permite crear un simbolo de botón mediante código.
Los objetos creados con la clase simpleButton contienen 4 propiedades que hacen referencia a los 3 estados del botón: normal, sobre y presionado, y a la zona activa del botón. Estos estados sería los mismos que los que tienen los botones creados hasta ahora desde Flash:
A la hora de crear la instancia de la clase SimpleButton asignaremos los MovieClips que servirán para mostrar estos estados del botón:
Donde up, over, down, hit serían MovieClips creados dinámicamente, por ejemplo, de la siguiente manera:
Código :
var up:Sprite = new Sprite(); up.graphics.lineStyle(3, 0x000000); up.graphics.beginFill(0xFF9900); up.graphics.drawRect(0, 0, 100, 30);
Una muestra sencilla de un boton creado con la clase SimpleButton dentro de una clase AS3 sería la siguiente:
Código :
package { import flash.display.Sprite; import flash.display.SimpleButton; //---------------------------- public class botonSimple extends Sprite { private var ruta:Sprite private var boton:SimpleButton = new SimpleButton; //---------------------------- public function botonSimple(queRuta,queX,queY) { ruta = queRuta boton.upState = creaSprite(3,0x000000,0xFF9900,100,30); boton.overState = creaSprite(3,0x000000,0xFFCC00,100,30); boton.downState = creaSprite(3,0x000000,0xFFCC99,100,30); boton.hitTestState = boton.upState; boton.useHandCursor = true; boton.x = queX boton.y = queY ruta.addChild(boton); } //---------------------------- private function creaSprite(lin_grosor, lin_color, relleno_color, ancho, alto):Sprite { var sprite:Sprite = new Sprite(); sprite.graphics.lineStyle(lin_grosor, lin_color); sprite.graphics.beginFill(relleno_color); sprite.graphics.drawRect(0, 0, ancho, alto); return sprite; } } }
Este código debe ir colocado dentro de un archivo .AS, junto a nuestro archivo .FLA o dentro de nuestra carpeta de clases AS3.
Para crear el botón colocaremos el siguiente código en nuestra película:
Código :
import botonSimple var boton1:botonSimple = new botonSimple(this,50,100);
El resultado sería un botón como este:
Este es un ejemplo muy simple, en el que solo pasamos como parámetro al crear el botón la posición X y Y. Lo interesante será añadir funciones a la clase que nos permitan modificar los parametros (color, grueso, tamaño..) de los Sprites del botón desde fuera de la clase, y que estos Sprites sean más elaborados (con texto, efectos, animaciones...)
muy buen ejemplo... todavia no tuve tiempo de meterme a investigar como me gustaria as3... ahora si hay SimpleButton es por que tambien hay alguna mas avanzada ??? (tal vez sea demasiado estupida mi pregunta pero de lo contrario no voy a poder dormir) Por:nico_blog
Buen tip, Zguillez. Solo añadir que si quieren que las posiciones del botón sean clips de la biblioteca, los exportan para AS con los nombres que quieran, los dejan autogenerados y:
Código :
var boton:SimpleButton = new SimpleButton(); boton.upState = new up();//up es lo que puse donde dice nombre de la clase en el panel de vinculación boton.overState = new over(); boton.downState = new down(); boton.hitTestState = new hit(); boton.useHandCursor = true; this.addChild(boton);
nico_blog :
ahora si hay SimpleButton es por que tambien hay alguna mas avanzada ???
Es para diferenciarla del componente Button, supongo. Por:Zah
Siempre está bien que vayamos observando los cambios que deberemos aplicar en la programaciòn con AS si queremos usar su última versión. Gracias. Por:Sisco
grax! Por:nico_blog
y ¿que significa Sprite? ... si yo se que es una pregunta tonta, pero como decian en el colegio: "es mejor ser tonto unos minutos por una pregunta tonta, que ser tonto toda la vida por quedarnos sin preguntar". Por:deftones_sv_blog
Un sprite es un objeto nuevo de AS3. Vendría a ser lo mismo que un MovieClip pero sin linea de tiempo (osea un gráfico de solo un fotograma). Por:Zguillez
Saludos, soy noobish en esto del as3, pero me gusta la idea de comenzar programación OO, y parece que as3 ha sido mi primer blanco, he estado merodeando por libros tutoriales y documentación y aún no he podido encontrar una solución a mi problemilla. Sabría alguien como añadirle texto a un objeto simplebutton?
De momento solo he conseguido asociar eventos a textfields, pero no me convence ya que estos no se comportan propiamente como botones (handCursor... etc). Y otras soluciones que he encontrado son usando extensiones del sprite (no me convence, me gustaría usar la clase simplebutton).
Cualquier pista o idea sería de agradecer. Posteo aquí y no abro nueva entrada en el foro ya que creo que mi pregunta está relacionada con este frente de discusión que tenéis abierto.
Gracias de antemano, Salute! Por:huma_blog
Espero no ocasionar problemas, con el siguiente link, aunque más información nunca viene mal, hay información más extendida para aquellos que somos 1 poco duros de mollera .