Comunidad de diseño web y desarrollo en internet online

condicional if para eventos de botones as3

Citar            
MensajeEscrito el 30 Ene 2013 09:32 pm
hola mi nombre es Brayan y soy nuevo en este foro y en as3 lo que sucede es que Quiero crear una función que con el condicional if haga clic en un boton1 y me duplique un movieClip ejemplo movieClip_1 y al hacer clic en boton2 me duplique el movieclip2 y ha si sucesivamente soy muy nuevo en as3 espero que me puedan ayudar GRACIAS esto es lo que llevo....pero no funciona......


Código ActionScript :

import flash.ui.Mouse;
import flash.events.MouseEvent;
import flash.events.Event;

var movieClip1: movieClip = new movieClip();//creo una variable para llamar el movieClip1 de mi libreria
var movieClip2: movieClip = new movieClip();//creo una variable para llamar el movieClip2 de mi libreria
var i:Number = 1;//el total de objetos duplicados

//convierto los movieclipspara q reaciionen como botones
boton1.buttonMode = true;
boton2.buttonMode = true;

//funcion duplicar movieClip  ;

function duplicate(e:Event):void
{
   if (boton1.addEventListener(MouseEvent.CLICK, duplicate));//condicional para el boton 1  duplique el movie clip
   {
      trace("new movieClip #" + i);
      stage.addChild(movieClip1);//duplica el movieClip1 al escenario 
      newplanters.x = 450;
      newplanters.y = 300;
   }
   if (boton2.addEventListener(MouseEvent.CLICK, duplicate));//condicional para el boton 1  duplique el movie clip
   {
      trace("new movieClip #" + i);
      stage.addChild(movieClip2);//duplica el movieClip2 al escenario 
      newplanters.x = 450;
      newplanters.y = 300;
   }
}



gracias de antemano por la atención prestada .......

Por brayanalex

4 de clabLevel



Genero:Masculino  

técnico diseño multimedia

chrome
Citar            
MensajeEscrito el 30 Ene 2013 11:42 pm
nop, lo estás haciendo mal....
te pongo como sería más o menos el código:

Código ActionScript :

import flash.ui.Mouse;
import flash.events.MouseEvent;
import flash.events.Event;

var movieClip1: movieClip = new movieClip();//creo una variable para llamar el movieClip1 de mi libreria
var movieClip2: movieClip = new movieClip();//creo una variable para llamar el movieClip2 de mi libreria
var i:Number = 1;//el total de objetos duplicados

//convierto los movieclipspara q reaciionen como botones
boton1.buttonMode = true;
boton2.buttonMode = true;

boton1.addEventListener(MouseEvent.CLICK, duplicateMC1);
boton2.addEventListener(MouseEvent.CLICK, duplicateMC2);

//Listeners del mouse, cada uno llama a la funcion duplicate pasandole como argumento qué quiere duplicar
function duplicateMC1(e:Event):void {
   duplicate(movieClip1);
}
function duplicateMC2(e:Event):void {
   duplicate(movieClip2);
}

function duplicate(MCduplicar:movieClip):void {
   trace("new movieClip #" + i);
   stage.addChild(MCduplicar);//duplica el movieClip1 al escenario 
   newplanters.x = 450;
   newplanters.y = 300;
}


No lo probé, pero debería funcionar.

Te explico donde está tu error:
La función addEventListener no sirve para checkear si se ejecuta un evento o no.... lo que hace es justamente (como dice el nombre), añadir un evento que va a esperar a ser accionado, (el primer parámetro, por ejemplo CLICK) y cuando sea accionado se va a llamar a la función del segundo parámetro (ej: duplicateMC1). Por lo que no se puede usar en un IF.
No sé si me explico.... si no se entiende me avisas.... lo más importante es que entiendas....

Por Ciberman96

3 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 01 Feb 2013 02:42 pm
haaaaaaaaaaa ok entendí a la perfección muchísimas gracias.

Por brayanalex

4 de clabLevel



Genero:Masculino  

técnico diseño multimedia

chrome
Citar            
MensajeEscrito el 01 Feb 2013 03:29 pm
OYE me surgió otra duda de antemano muchas gracias por la respuesta anterior me funciono muy bien pero ahora quiero agregarle un Drag and Drop a mi objeto duplicado y según como tu lo hiciste intente hacerlo igual pero sin éxito :roll: :roll: :roll: :roll: este es mi código.

Código ActionScript :

function duplicateMC1(e:Event):void{
   duplicate(Movieclip1);
   drag(Movieclip1);
   drop(Movieclip1);
}
function duplicateMC2(e:Event):void{
   duplicate(Movieclip2);
   drag(Movieclip1);
   drop(Movieclip1);
   
}

function duplicate (MCduplicar:MovieClip):void{
   trace("new planters #" + i);
   stage.addChild(MCduplicar);
   MCduplicar.x = 450;
   MCduplicar.y = 300;
}
function drag (MCduplicar:MovieClip):void{
   MCduplicar.startDrag();
}
function drop (MCduplicar:MouseEvent):void{
   MCduplicar.stopDrag();
}



alguna sugerencia q estoy haciendo Mal......... :roll: :roll: :roll: :) :) :) :)

Por brayanalex

4 de clabLevel



Genero:Masculino  

técnico diseño multimedia

chrome
Citar            
MensajeEscrito el 01 Feb 2013 03:45 pm
haaaaaaaa y como hago para remover el evento de el movieCLip no funciona

Código ActionScript :

boton1.removeEventListener(MouseEvent.CLICK, duplicateMC1)


?¡?¡?¡ muchisimas gracias :D :D :D :D :D :D :D

Por brayanalex

4 de clabLevel



Genero:Masculino  

técnico diseño multimedia

chrome
Citar            
MensajeEscrito el 03 Feb 2013 06:16 pm
esta bien el codigo pero te ahorrare un listener .-- y asi te evitas la maraña de eventos asyn- en llegado caso que se ponga duro el proyecto.

primero crea una clase con cada movieclip que deseas extendiendo movieclip. luego. los metes en un displayobjectcontainer---> Sprite. puede ser con un Sprite..

luego al sprite le dices Sprite_.addEventListener("click", listener_,false,0,true);

luego.

function listener(e:MouseEvent):void{

var _target:MovieClip = e.target; //preguntas por el child que origino el //evento

switch(true){
case (_target is MovieClip1):
//dupica
case(_target is MovieClip2):
//duplica
default:

}

SE lee bonito y se ve bonito.

Por liryum

4 de clabLevel



 

chrome
Citar            
MensajeEscrito el 05 Feb 2013 04:44 pm
ok muchas gracias por tu respuesta .........pero ahora me surge otra pregunta si me piden q todos los datos lo guarde desde un xml eso es posible si tener q hacer todo el codigo de nuevo??? :shock: :shock: :shock: :shock: :twisted: :twisted: :twisted: :twisted:

malditos cambios a ultima hora

Por brayanalex

4 de clabLevel



Genero:Masculino  

técnico diseño multimedia

msie8
Citar            
MensajeEscrito el 05 Feb 2013 05:04 pm
si me preguntas, como guardar el estado.. de la aplicacion puedes utilizar

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/SharedObject.html

y justo estaba viendo esto,

http://www.adobe.com/devnet/flash/articles/saving_state_air_apps.html

espero le sirva. para xml hay mucha inf.

Por liryum

4 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Feb 2013 03:25 pm
no me refiero a guardar alrededor de 163 movieclips para la función de duplicar el movieclip y q la persona q ponga todas la movieclips lo haga desde el xml ¡¿ESO ES POSIBLE? gracias por tu anterior repuesta

Por brayanalex

4 de clabLevel



Genero:Masculino  

técnico diseño multimedia

chrome
Citar            
MensajeEscrito el 08 Feb 2013 07:37 pm
que tipo de aplicacion esta trabajando,, AIr-desktop-mbile , web?

Por liryum

4 de clabLevel



 

chrome
Citar            
MensajeEscrito el 08 Feb 2013 08:10 pm
web :cool:

Por brayanalex

4 de clabLevel



Genero:Masculino  

técnico diseño multimedia

chrome

 

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