Comunidad de diseño web y desarrollo en internet online

Otra alma en pena que no se queria mudar a AS3

Citar            
MensajeEscrito el 14 Abr 2010 07:03 am
Primero que nada un saludo, es mi primer post y seguramente no sera el ultimo.

Después de años de huirle al AS3, por fin me tuve que enfrentar a el y lo peor, con dinero de por medio.

Resulta que estoy modificando una plantilla flash AS3 basada casi por entero en XML, asi que todo lo que pasa ahi esta definido dentro de un archivo as y algunos cambios menores se realizan modificando varios archivos XML, sin embargo, me estan pidiendo que un boton que acabamos de agregar, realize la misma funcion que los botones que ya vienen preestablecidos en la plantilla, cosa que hasta el momento, no he podido resolver.

En si lo que hacen los botones es cargar y descargar diversas peliculas SWF es decir, picas un boton y se descarga una pelicula para que otra se cargue, sin embargo, los botones son llamados desde un XML por medio de arrays, y no encuentro el punto donde puedo digamos "repetir" la funcion que hacen porque me pierdo entre tanto codigo, lo peor es que esta es la unica cosa que me separa de terminar el proyecto y no quiero decirles "no se puede" a mis clientes siendo que se que si se puede, el problema es que no se como hacerlo.

he pensado que tal vez puedo "llamar" a alguna de las funciones que ocurren al dar click. esta es la linea de codigo que creo esta relacionada con la funcion de llamar a los SWF en base a su array:

CODIGO:

private function selectItem(id:String, type:String):void {
var mainButton:Object;
switch (type) {
case "mainB" :
mainButton=menuArr[id].button;
menuArr[id].activ = true;
break;
case "subB" :
var menuBA:Array = id.split("/");
mainButton = menuArr[menuBA[0]].button;
menuArr[menuBA[0]].activ = true;
var subButton:Object = menuArr[menuBA[0]]._subMenu[menuBA[1]].button;
colorCgange(subButton.txt, subMenuText_mouseOver);
menuArr[menuBA[0]]._subMenu[menuBA[1]].activ=true;
break;
}
colorCgange(mainButton.img, buttons_mouseOver);
colorCgange(mainButton.txt, buttons_mouseOver);
}
private function openItem(id:String, type:String):void {
var componentSWF:String;
var componentPath:String;
switch (type) {
case "mainB" :
componentSWF =String(menuArr[id].cont.componentSWF);
componentPath =String(menuArr[id].cont.componentPath);
break;
case "subB" :
var menuBA:Array = id.split("/");
var informBox:Object = menuArr[menuBA[0]]._subMenu[menuBA[1]];
componentSWF =String(informBox.cont.componentSWF);
componentPath =String(informBox.cont.componentPath);
break;
}


xmlCOLORS_DFT = componentPath+"/colors.xml";
xmMAIN_XML_PATH = componentPath+"/cgal.xml";
itemsPath = componentPath+"/";
mainLoader(itemsPath+"/"+componentSWF);
}
private function mainButtonH(e:MouseEvent):void {
var button = e.currentTarget;
var id:String = button.name;
Tweener.removeTweens(this)
switch (e.type) {
case "mouseOut" :
if (!menuArr[id].activ && menuArr[id].cont.type!="menu") {
colorCgange(button.txt, buttons_mouseOut);
colorCgange(button.img, buttons_mouseOut);
}
break;
case "mouseOver" :
closeAllSubMmenu();
if (menuArr[id].cont.type=="menu") {
Tweener.addTween(this,{delay:.2, onStart:function(){openSubMenu(parseInt(id));}})

}else{
colorCgange(button.txt, buttons_mouseOver);
colorCgange(button.img, buttons_mouseOver);
}
break;
case "click" :
if (!menuArr[id].activ) {
deactivComp();
openItem(id,'mainB');
selectItem(id,'mainB');
}
break;
}



Para acabar pronto estoy perdido en el espacio, no se que hacer para hacer que un boton que yo agregue "a la antiguita" en uno de los layers, haga lo mismo que hacen los botones preestablecidos, otros botones que agregue si funcionan, ya logre llamar URLs sin problema, pero ahora necesito saber como diantres emular la funcion de abrir un swf y cerrar un swf como lo hacen los otros botones, ojala no sea mucho pedir compasion por estas tierras de los amos y señores del flash.

Si de plano no estoy preguntando correctamente o necesitan mas datos para echarme una mano, haganmelo saber y pondre manos a la obra, gracias de antemano por la ayuda y por la paciencia.

Blak

Por Blak

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 Abr 2010 08:38 am
Tienes que buscar un addListener por ahí, de todos modos ¿por qué no modificas el XML para añadir el botón?

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 Abr 2010 06:37 pm

Eliseo2 escribió:

Tienes que buscar un addListener por ahí, de todos modos ¿por qué no modificas el XML para añadir el botón?


el problema es la ubicacion, el boton que yo arme esta en un punto de la pantalla, y los botones del array de XML ya tienen un orden de aparicion definido por el codigo AS, es decir, si agrego un boton en el XML, me lo va a colocar junto a los demas.

lo que se me ocurre es hacer que el boton descarge la pelicula del loader y cargue la pelicula que yo le pida, el problema es que desconozco por completo como hacer esto.

En lo que me responden voy a buscar en todo el foro a ver que encuentro relativo al tema.

Por cierto, nadie de por aqui da clases particulares o algo similar? estaria muy interesado!

Gracias!

Por Blak

1 de clabLevel



 

firefox

 

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