Actionscript3.0, Flash

Programar un botón en Flash Actionscript 3.0 (AS3)

23/10/2008

En Actionscript 2.0 existía la opción de crear un botón, hacer click encima y escribir código encima del propio objeto. En AS3 no existe la posibilidad de escribir código sobre clips de película ni botones, todo el código debe estar situado en la linea de tiempo o en clases. Esto puede parecer un inconveniente, pero a la hora de hacer desarrollos medianos/complejos hace las cosas mucho más sencillas.

Además programar botones en AS3 no es más complicado que hacerlo en AS2, sólo tenemos que añadir el evento al objeto con addEventListener, indicar que evento añadimos ("Event.CLICK", "Event.MOUSE_DOWN, etc…) y crear la función que se vá a ejecutar cuando se reproduzca el event. Es decir, que traducido al castellano, lo que decimos es:

 

elpuma09 dice:

Que tal buenas tardes:

Quisiera pedir su apoyo, con el fin de que me ayuden.
Estoy tratando de hacer una botonera en as3 para un proyecto que se me encargo, her realizado los botones y el texto que va en los botones, sin embargo a la hora de ponerles los links, estos no funcionan.

El código que he hecho es el siguiente:

var nombresBotones:Array = new Array (“GOOGLE”, “YAHOO”, “HOTMAIL”, “INTERC”, “CRISTALAB”);
var direccionesWeb:Array = new Array (“http://www.google.com.mx”, “http://www.yahoo.com.mx”, “http://www.hotmail.com”, “http://www.intercambiosvirtuales.org”,”http://www.cristalab.com”);
for (var i = 0; i<5; i++){

var button:Sprite = new Sprite();
button.graphics.beginFill(0xff0066, 0.5);
button.graphics.drawRect(0, 0, 70, 25);
button.graphics.endFill();
button.x = i * 80;
button.y = 30;

var str:String = nombresBotones[i];
var fontDescription:FontDescription = new FontDescription("Arial","normal");
var format:ElementFormat = new ElementFormat(fontDescription, 14, 0x000000, 1);
var textElement:TextElement = new TextElement(str.toUpperCase(), format);
var textBlock:TextBlock = new TextBlock();
textBlock.content = textElement;
textBlock.baselineZero = TextBaseline.ROMAN;
var textLine:TextLine = textBlock.createTextLine(null, 300);
textLine.x = 5;
textLine.y = textLine.height+5;

button.buttonMode = true;
addChild (button);
button.addChild(textLine);

}

button[i].addEventListener(MouseEvent.CLICK, presionado);

function presionado (e:MouseEvent):void{
var webs:URLRequest = new URLRequest(e.target.url);
navigateToURL(webs);
//buttonsContainer.addChild(button);
}

Quisiera que alguno de ustedes me pudiesen ayudar, he tratado de hacerlo por una semana y no se me ocurre nada, por favor.

espero su respuesta

PD. los links que aqui puse son ejemplos.

esedeerre dice:

Hola, así a bote pronto, veo que la linea

button[i].addEventListener(MouseEvent.CLICK, presionado);

Deberías meterla dentro del for y sustituirla por:

button.addEventListener(MouseEvent.CLICK, presionado);

Saludos!!