Foros del Web » Creando para Internet » Flash y Actionscript »

createBoton actionscript

Estas en el tema de createBoton actionscript en el foro de Flash y Actionscript en Foros del Web. Hola a todos, Estoy intentando que se pueda cliquear un MC desde action script. El código que tengo es el siguiente: Código: for(n = 0; ...
  #1 (permalink)  
Antiguo 22/11/2005, 10:11
 
Fecha de Ingreso: enero-2005
Mensajes: 94
Antigüedad: 19 años, 10 meses
Puntos: 0
createBoton actionscript

Hola a todos,

Estoy intentando que se pueda cliquear un MC desde action script. El código que tengo es el siguiente:

Código:
for(n = 0; n < 22; n ++)
{
	_root.createEmptyMovieClip("carta" + n, _root.getNextHighestDepth());
	_root["carta" + n]._x = (21 * n) + 10;
	_root["carta" + n].loadMovie("img/sm_back.jpg", "");
}
He probado lo siguiente dentro del for:

Código:
_root["carta" + n].onRelease = function()
{
	trace("HOLA");
}
Pero nada, ¿Alguien tiene alguna sugerencia o ve algún error en el código?

Gracias

Última edición por MiquelCS; 22/11/2005 a las 10:27
  #2 (permalink)  
Antiguo 22/11/2005, 10:31
 
Fecha de Ingreso: marzo-2005
Ubicación: Lima, PE
Mensajes: 28
Antigüedad: 19 años, 8 meses
Puntos: 0
Algo de codigo

Espero que te sirv, lo encontre en la documentacion de macromedia y lo personalice un poco
Código:
var container:MovieClip = setUpContainer();
var ln:Number = 10;
var spacer:Number = 1;
var duplicate:MovieClip;
for(var i:Number = 1; i < ln; i++) {
    var newY:Number = i * (container._height + spacer);
    item = container.duplicateMovieClip("clip-" + i, i, {_y:newY});
    trace(item); // _level0.clip-[number]
	item.onRelease = function() 
		{
			//tucodigo
			trace (this)
		};

	item.onRollOver = function() {
			//tu codigo
			
		};
		// -- Evento cuando el puntero esta sobre el Boton
	item.onRollOut = function() {
			// tu codigo
		};
}

function setUpContainer():MovieClip {
    var mc:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth());
    var w:Number = 100;
    var h:Number = 20;
    mc.beginFill(0x333333);
    mc.lineTo(w, 0);
    mc.lineTo(w, h);
    mc.lineTo(0, h);
    mc.lineTo(0, 0);
    mc.endFill();
    return mc;
}

Última edición por zazk; 22/11/2005 a las 11:13
  #3 (permalink)  
Antiguo 23/11/2005, 05:03
 
Fecha de Ingreso: enero-2005
Mensajes: 94
Antigüedad: 19 años, 10 meses
Puntos: 0
Pero es que el código que me muestras, crea un clip y luego lo duplicas tantas veces como quieras.

Yo lo que estoy intentando, es crear 22 MovieClips y que estos se comporten como un botón.

A parte que tampoco me funciona (que lo acabo de probar ;)

Última edición por MiquelCS; 23/11/2005 a las 05:30
  #4 (permalink)  
Antiguo 23/11/2005, 13:33
 
Fecha de Ingreso: marzo-2005
Ubicación: Lima, PE
Mensajes: 28
Antigüedad: 19 años, 8 meses
Puntos: 0
Hola!, si no funciono el otro codigo es que estas publicando en una version anterior al Player 6 o 7, este codigo esta escrito en ActionScript 2.0 y ahora lo modificado para que cree movieClips y no los duplique, espero que te sirva, si tienes alguna consulta dimela, recuerda que tienes que tener una archivo imagen.jpg para que puedas ver el movie clip.

Código:
var container:MovieClip = _root.createEmptyMovieClip("mc",10);
for(var i:Number = 1; i < 22; i++) { 
    item = container.createEmptyMovieClip("clip-" + i, 100+ i);
	item.createEmptyMovieClip("img",1);
	// creo un clip dentro del clip recien creado 
	//para poner la imagen posiciono uno debajo del 
	// otro si quieres que se cambie esto modifica _y por _x
	item._y = xpos;
	xpos +=30;
	item.img.loadMovie("imagen.jpg", i+50);
	// los eventos para que se comporte como un boton
	item.onRelease = function() 
		{
			trace (this)//tucodigo
		};
	item.onRollOver = function() {
			//tu codigo
		};
	item.onRollOut = function() {
			// tu codigo
		};
}
  #5 (permalink)  
Antiguo 24/11/2005, 02:45
 
Fecha de Ingreso: enero-2005
Mensajes: 94
Antigüedad: 19 años, 10 meses
Puntos: 0
Gracias por tu ayuda zazk!

Ya lo he solucionado. Al final ha quedado así:


Código:
for(n = 0; n < 22; n ++)
{
	var carta:MovieClip = _root.createEmptyMovieClip("carta" + n, _root.getNextHighestDepth());
	carta.createEmptyMovieClip("img", 1);
	carta._x = (21 * n) + 10;
	carta.img.loadMovie("img/sm_back.jpg", "");
	carta.onRelease = function()
	{
		trace(this);
	}
}
P.D.: Utilizo el Flash MX Professional 2004 que creo que sí que lleva incorporado el as 2.0
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:01.