Comunidad de diseño web y desarrollo en internet online

Como cargar la foto en grande en una galeria, AS3.

Citar            
MensajeEscrito el 10 Jun 2010 01:08 pm
Hola, necesito una idea para poder cargar una foto en grande, sin tener que repetir la función (callFull), cuando pulso el texto de la foto(textoPrecio).

import fl.controls.ProgressBar;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
marcas_btn.mouseEnabled = false;
marcas_btn.enabled = false;
marcas_btn.alpha = 0;
interior_btn.mouseEnabled = false;
interior_btn.enabled = false;
interior_btn.alpha = 0;
exterior_btn.mouseEnabled = false;
exterior_btn.enabled = false;
exterior_btn.alpha = 0;
leds_btn.mouseEnabled = false;
leds_btn.enabled = false;
leds_btn.alpha = 0;
ofertas_btn.mouseEnabled = false;
ofertas_btn.enabled = false;
ofertas_btn.alpha = 0;
var columns:Number;
var my_x:Number;
var my_y:Number;
var my_thumb_width:Number;
var my_thumb_height:Number;
var my_images:XMLList;
var my_total:Number;
var i:Number;
var myXML:XML;
var my_descripcion:XMLList;
var my_modelo:XMLList;
var my_precio:XMLList;
var my_textoprecio_x:Number;
var my_textoprecio_y:Number;
var x_conta:Number = 0;
var y_conta:Number = 0;
var container_mc:MovieClip;
var preloaders_mc:MovieClip;
var full_mc:MovieClip;
var contenedorFoto_mc:MovieClip;
var contenedor_mc:MovieClip;
var x_counter:Number = 0;
var y_counter:Number = 0;
var num:Number = 15;
var dirx:Number = 0;
var diry:Number = 0;
var my_tweens:Array = [];
var container_mc_tween:Tween;
var full_tween:Tween;
var myXMLLoader:URLLoader = new URLLoader();
myXMLLoader.load(new URLRequest("./xml/gallery.xml"));
myXMLLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void {
var myXML:XML = new XML(e.target.data);
columns = myXML.@COLUMNS;
my_x = myXML.@XPOSITION;
my_y = myXML.@YPOSITION;
my_thumb_width = myXML.@WIDTH;
my_thumb_height = myXML.@HEIGHT;
my_textoprecio_x = myXML.@XPRECIO;
my_textoprecio_y = myXML.@YPRECIO;
my_descripcion = myXML.IMAGE.@DESCRIPCION;
my_modelo = myXML.IMAGE.@MODELO;
my_precio = myXML.IMAGE.@PRECIO;
my_images = myXML.IMAGE;
my_total = my_images.length();
marcoThumbs_mc();
createContainer();
callThumbs();
textos_mc();
myXMLLoader.removeEventListener(Event.COMPLETE, processXML);
myXMLLoader = null;
}
function createContainer():void {
container_mc = new MovieClip();
container_mc.x = my_x;
container_mc.y = my_y;
addChild(container_mc);
container_mc.addEventListener(MouseEvent.CLICK, callFull);
container_mc.addEventListener(MouseEvent.MOUSE_OVER, onOver);
container_mc.addEventListener(MouseEvent.MOUSE_OUT, onOut);
container_mc.buttonMode = true;
preloaders_mc = new MovieClip();
preloaders_mc.x = container_mc.x;
preloaders_mc.y = container_mc.y;
addChild(preloaders_mc);
}
function callThumbs():void {
for (var i:Number = 0; i < my_total; i++) {
var thumb_url = my_images[i].@THUMB;
var thumb_loader = new Loader();
thumb_loader.load(new URLRequest(thumb_url));
thumb_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, thumbLoaded);
thumb_loader.name = i;
thumb_loader.x = (my_thumb_width+10)*x_counter;
thumb_loader.y = (my_thumb_height+10)*y_counter;
if (x_counter+1 < columns) {
x_counter++;
} else {
x_counter = 0;
y_counter++;
}
var preloader_pb:ProgressBar = new ProgressBar();
preloader_pb.source = thumb_loader.contentLoaderInfo;
preloader_pb.x = thumb_loader.x;
preloader_pb.y = thumb_loader.y;
preloader_pb.width = my_thumb_width;
preloader_pb.height = my_thumb_height;
preloaders_mc.addChild(preloader_pb);
preloader_pb.addEventListener(Event.COMPLETE, donePb);
}
}
function thumbLoaded(e:Event):void {
var my_thumb:Loader = Loader(e.target.loader);
container_mc.addChild(my_thumb);
my_tweens[Number(my_thumb.name)]=new Tween(my_thumb, "alpha", Strong.easeIn, 0,1,0.5, true);
my_thumb.contentLoaderInfo.removeEventListener(Event.COMPLETE, thumbLoaded);
}
function callFull(e:MouseEvent):void {
var full_loader:Loader = new Loader();
var full_url = my_images[e.target.name].@FULL;
full_loader.load(new URLRequest(full_url));
full_loader.contentLoaderInfo.addEventListener(Event.INIT, fullLoaded);
var contenedorFoto_mc:MovieClip = new contenedorfoto();
contenedorFoto_mc.name = "texto" + i;
addChild(contenedorFoto_mc);
contenedorFoto_mc.x = 268;
contenedorFoto_mc.y = 60;
borrarContenedor_btn.visible = false;
//trace(full_url);
var full_pb:ProgressBar = new ProgressBar();
full_pb.source = full_loader.contentLoaderInfo;
full_pb.x = (stage.stageWidth - full_pb.width)/2;
full_pb.y = (stage.stageHeight - full_pb.height)/2;
preloaders_mc.addChild(full_pb);
full_pb.addEventListener(Event.COMPLETE, donePb);
container_mc.removeEventListener(MouseEvent.CLICK, callFull);
container_mc.buttonMode = false;
container_mc.removeEventListener(MouseEvent.MOUSE_OVER, onOver);
container_mc.removeEventListener(MouseEvent.MOUSE_OUT, onOut);
container_mc_tween = new Tween(container_mc, "alpha", Strong.easeIn, 1,0.5,0.5, true);
}
function marcoThumbs_mc():void{
for( i = 0; i < my_total ; i++){
var mcs = this ["mc_thumb" + i ];
mcs = new mc_thumb();
mcs.name = "texto" + i;
mcs.x = (110 * dirx) + 250;
mcs.y = (110 * diry) + 95;
dirx++;
if (dirx == columns){
dirx = 0;
diry++;
}
addChild(mcs);
}
}
function fullLoaded(e:Event):void {
full_mc = new MovieClip();
full_mc.buttonMode = true;
addChild(full_mc);
var my_loader:Loader = Loader(e.target.loader);
full_mc.addChild(my_loader);
full_tween = new Tween(my_loader, "alpha", Strong.easeIn, 0,1,0.5, true);
my_loader.x = ((stage.stageWidth - my_loader.width)/2) + 10;
my_loader.y = ((stage.stageHeight - my_loader.height)/2) - 70;
my_loader.addEventListener(MouseEvent.CLICK,removeFull);
my_loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, fullLoaded);
}
function removeFull(e:MouseEvent):void {
var my_loader:Loader = Loader (e.currentTarget);
full_tween = new Tween(my_loader, "alpha", Strong.easeOut, 1,0,0.5, true);
full_tween.addEventListener(TweenEvent.MOTION_FINISH, tweenFinished);
var contenedorFoto_mc = getChildByName("texto" + i);
removeChild(contenedorFoto_mc);
borrarContenedor_btn.visible = true;
container_mc_tween = new Tween(container_mc, "alpha", Strong.easeOut, 0.5,1,0.5, true);
}
function donePb(e:Event):void {
var my_pb:ProgressBar = ProgressBar(e.target);
preloaders_mc.removeChild(my_pb);
my_pb.removeEventListener(Event.COMPLETE, donePb);
}
function tweenFinished(e:TweenEvent):void {
var my_loader:Loader = Loader (e.target.obj);
my_loader.unload();
full_mc.removeChild(my_loader);
removeChild(full_mc);
full_mc = null;
container_mc.addEventListener(MouseEvent.CLICK, callFull);
container_mc.buttonMode = true;
container_mc.addEventListener(MouseEvent.MOUSE_OVER, onOver);
container_mc.addEventListener(MouseEvent.MOUSE_OUT, onOut);
var my_tween:Tween = Tween(e.target);
my_tween.removeEventListener(TweenEvent.MOTION_FINISH, tweenFinished);
}
function onOver(e:MouseEvent):void {
var my_thumb:Loader = Loader(e.target);
my_thumb.alpha = 0.5;
}
function onOut(e:MouseEvent):void {
var my_thumb:Loader = Loader (e.target);
my_thumb.alpha = 1;
}
function textos_mc() :void {
for (var i:Number = 0; i < my_total; i++) {
var contenedor_mc:MovieClip = new MovieClip();
contenedor_mc.name = "containe_mc" + i;
this.addChild(contenedor_mc);
var modelos_url = my_images[i].@MODELO;;
var textoModelos:TextField = new TextField();
textoModelos.name = "texto1" + i;
textoModelos.type = TextFieldType.DYNAMIC;
textoModelos.width = 60;
textoModelos.height = 18;
textoModelos.x = 290 + (my_textoprecio_x + 100) * x_conta;;
textoModelos.y = 160 + (my_textoprecio_y + 10) * y_conta;
var precio_url = my_images[i].@PRECIO;;
var textoPrecios:TextField = new TextField();
textoPrecios.name = "texto2" + i;
textoPrecios.type = TextFieldType.DYNAMIC;
textoPrecios.width = 60;
textoPrecios.height = 18;
textoPrecios.x = 290 + (my_textoprecio_x + 100) * x_conta;;
textoPrecios.y = 177 + (my_textoprecio_y + 10) * y_conta;
if (x_conta + 1 < columns){
x_conta++;
} else {
x_conta = 0;
y_conta++;
}
textoModelos.wordWrap = false;
textoModelos.background = true;
textoModelos.backgroundColor = 0x333333;
textoModelos.selectable = false;
var txtmFrmts:TextFormat = new TextFormat();
txtmFrmts.bold = true;
txtmFrmts.size = 13;
txtmFrmts.color = 0xffcb65;
txtmFrmts.align = TextFormatAlign.RIGHT;
textoModelos.defaultTextFormat = txtmFrmts;
textoModelos.text = modelos_url;
textoModelos.mouseEnabled = false;
textoPrecios.wordWrap = false;
textoPrecios.background = true;
textoPrecios.backgroundColor = 0xffcc32;
textoPrecios.selectable = false;
var txtpFrmts:TextFormat = new TextFormat();
txtpFrmts.bold = true;
txtpFrmts.size = 13;
txtpFrmts.color = 0x000000;
txtpFrmts.align = TextFormatAlign.RIGHT;
textoPrecios.defaultTextFormat = txtpFrmts;
textoPrecios.text = precio_url;
textoPrecios.mouseEnabled = false;
contenedor_mc.addChild(textoModelos); // Agregamos el texto al contenedor
contenedor_mc.addChild(textoPrecios); // Agregamos el texto al contenedor
contenedor_mc.addEventListener(MouseEvent.MOUSE_MOVE, my_Over);
contenedor_mc.addEventListener(MouseEvent.MOUSE_OUT, my_Out);
contenedor_mc.addEventListener(MouseEvent.MOUSE_DOWN, my_Pres);
}
}
function my_Over(evt:MouseEvent) :void {
Mouse.cursor = MouseCursor.BUTTON;
}
function my_Out(evt:MouseEvent) :void {
Mouse.cursor = MouseCursor.ARROW;
}
function my_Pres(evt:MouseEvent) :void {
for (var i:Number = 0; i < my_total; i++) {
var mc = getChildByName("containe_mc" + i);
removeChild(mc);
var mcs = getChildByName("texto" + i);
removeChild(mcs);
}
removeChild(container_mc);
var contenedor_mc:MovieClip = evt.target as MovieClip;
var texto1:TextField = contenedor_mc.getChildAt(0) as TextField;
var texto2:TextField = contenedor_mc.getChildAt(1) as TextField;
gotoAndStop(5);
modelo_txt.text = texto1.text;
precio_txt.text = texto2.text;
var contenedorFoto_mc:MovieClip = new contenedorfoto();
contenedorFoto_mc.name = "texto" + i;
addChild(contenedorFoto_mc);
contenedorFoto_mc.x = 450;
contenedorFoto_mc.y = 150;
// Como cargar la foto en GRANDE
var foto:TextField = new TextField();
foto.text = "como poner FOTO ";
contenedorFoto_mc.addChild(foto);
}
borrarContenedor_btn.addEventListener(MouseEvent.MOUSE_DOWN, borrar);
function borrar (e:MouseEvent) :void {
for (var i:Number = 0; i < my_total; i++) {
var contenedor_mc = getChildByName("containe_mc" + i);
removeChild(contenedor_mc);
var mcs = getChildByName("texto" + i);
removeChild(mcs);
}
removeChild(container_mc);
gotoAndStop(3);
marcas_btn.mouseEnabled = true;
marcas_btn.enabled = true;
marcas_btn.alpha = 1;
interior_btn.mouseEnabled = true;
interior_btn.enabled = true;
interior_btn.alpha = 1;
exterior_btn.mouseEnabled = true;
exterior_btn.enabled = true;
exterior_btn.alpha = 1;
leds_btn.mouseEnabled = true;
leds_btn.enabled = true;
leds_btn.alpha = 1;
ofertas_btn.mouseEnabled = true;
ofertas_btn.enabled = true;
ofertas_btn.alpha = 1;
}
Gracias

Por Jesus Lopez

10 de clabLevel



 

chrome
Citar            
MensajeEscrito el 11 Jun 2010 01:55 pm
XD tas loco si pretendes que alguien se estudie todo tu codigo, intenta poner solo el codigo implicado y si lo comentas mejor.

Por giskard

110 de clabLevel



Genero:Masculino  

Programador y diseñador web

msie8
Citar            
MensajeEscrito el 11 Jun 2010 04:18 pm
La parte es esta.
function my_Pres(evt:MouseEvent) :void {
for (var i:Number = 0; i < my_total; i++) {
var mc = getChildByName("containe_mc" + i);
removeChild(mc);
var mcs = getChildByName("texto" + i);
removeChild(mcs);
}
removeChild(container_mc);
var contenedor_mc:MovieClip = evt.target as MovieClip;
var texto1:TextField = contenedor_mc.getChildAt(0) as TextField;
var texto2:TextField = contenedor_mc.getChildAt(1) as TextField;
gotoAndStop(5);
modelo_txt.text = texto1.text;
precio_txt.text = texto2.text;
var contenedorFoto_mc:MovieClip = new contenedorfoto();
contenedorFoto_mc.name = "texto" + i;
addChild(contenedorFoto_mc);
contenedorFoto_mc.x = 450;
contenedorFoto_mc.y = 150;
// Cargar la foto en GRANDE
var fullloader:Loader = new Loader();
var fullurl = my_images[0].@FULL;
fullloader.load(new URLRequest(fullurl));
contenedorFoto_mc.addChild(fullloader);
fullloader.x = 4;
fullloader.y = 4;
}

Por Jesus Lopez

10 de clabLevel



 

chrome

 

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