Comunidad de diseño web y desarrollo en internet online

Galeria OOP / Problema

Citar            
MensajeEscrito el 24 Sep 2008 03:11 pm
Gente, buenos dias, todo bien? les comento que estoy usando la galería de imágenes posteada en un tutorial con el nombre "Galeria OOP" (link: http://www.cristalab.com/tutoriales/22/galeria-de-imagenes-en-flash-clab_gallery-v1.0.html) y resulta que cuando la pruebo en mi máquina funciona todo bien, pero cuando la pruebo en mi sitio me muestra la galeria pero se clava cuando hace el preload de los thumbs (preview), yo me fije y arriba están todas las carpetas y demás archivos, si quieren les paso la URL para que vean el problema...
Muchas gracias por las ayuditas!
:cool:
Abrazo

Por Gualicho

22 de clabLevel



 

Argentina

firefox
Citar            
MensajeEscrito el 24 Sep 2008 03:58 pm
Lo más seguro es que no tengas bien puesta las rutas, chequea esta parte.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 24 Sep 2008 04:04 pm
si, fue lo primero que me fije pero como pase todo tal cual estaba en mi pc (la misma estructura de carpetas, todo en su mismo lugar) no debería hacer falta cambiar nada...

Por Gualicho

22 de clabLevel



 

Argentina

firefox
Citar            
MensajeEscrito el 24 Sep 2008 04:46 pm
No, cuando estás en un servidor, la ruta de las cosas que lees en el flash es respectiva al html y no al flash en si, por lo tanto no es lo mismo cuando lo tienes en el PC que en el servidor. A no ser que el SWF esté donde mismo está el html, si es así no es un problema de rutas.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 24 Sep 2008 06:06 pm
Justamente, todos los SWF están junto al html, todo dentro de la misma carpeta, lo raro es que abajo (en mi pc) funciona todo bien y cuando subo la misma carpeta al servidor qeuda sin funcionar... :shock:

Por Gualicho

22 de clabLevel



 

Argentina

firefox
Citar            
MensajeEscrito el 24 Sep 2008 06:44 pm
Bueno, me imagino que también el camino a las imágenes lo hayas cambiado en los ficheros .as, de lo contrario buscará las imágenes en el servidor de cristalab, como está hecho el ejemplo.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 24 Sep 2008 06:54 pm
sisi, todo eso actualizado...

Por Gualicho

22 de clabLevel



 

Argentina

firefox
Citar            
MensajeEscrito el 24 Sep 2008 08:13 pm
Postea los códigos que cambiaste en los ficheros .as

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 24 Sep 2008 08:35 pm

foto.as
---------



import cristalab.galeria.Preloader;
class cristalab.galeria.Foto {
private var ruta_mc:MovieClip;
private var popup_mc:MovieClip;
private var ambito;
private var imagen:Number;
function Foto(imagen:Number, ruta:MovieClip) {
var init:Object;
init.img = imagen;
this.imagen = imagen;
ruta_mc = ruta;
ruta_mc.attachMovie("fPopup", "pop_mc", ruta_mc.getNextHighestDepth(), init);
popup_mc = ruta_mc.pop_mc;
ubicar();
}
public function reload():Void {
popup_mc.container_mc.img_mc._x = popup_mc.container_mc.img_mc._y=0;
popup_mc.container_mc.img_mc.unloadMovie();
cargarImagen();
}
public function atras():Void {
if (this.imagen>1) {
imagen--;
reload();
}
}
public function adelante():Void {
if (this.imagen<ruta_mc.galeria.nImagenes) {
imagen++;
reload();
}
}
public function ubicar():Void {
popup_mc._x = (ruta_mc._width/2)-(popup_mc._width/2);
popup_mc._y = (ruta_mc._height/2)-(popup_mc._height/2);
}
public function cargarImagen():Void {
with (popup_mc) {
cerrar_btn.enabled = atras_btn.enabled=adelante_btn.enabled=false;
navbar_mc._visible = false;
}
var precarga:Preloader = new Preloader(popup_mc.container_mc.img_mc, "/images/normal/"+imagen+".jpg", popup_mc.drw_mc, popup_mc.container_mc, this, onLoadImg);
}
private function onLoadImg():Void {
//ruta_mc.img_mc._visible=false;
ruta_mc.img_mc._x=ruta_mc.img_mc._y=0;
var hilo = setInterval(function (amb) {
ruta_mc.img_mc._x = (ruta_mc._width/2)-(ruta_mc.img_mc._width/2);
ruta_mc.img_mc._y = (ruta_mc._height/2)-(ruta_mc.img_mc._height/2);
amb.showElements();
clearInterval(hilo);
}, 100,ambito);
}
private function showElements() {
popup_mc.container_mc.img_mc._visible=true;
popup_mc.container_mc.img_mc.useHandCursor = false;
popup_mc.container_mc.img_mc.clase = this;
popup_mc.container_mc.img_mc.ruta_mc = ruta_mc;
popup_mc.container_mc.attachMovie("transicion","trans_mc",popup_mc.container_mc.getNextHighestDepth());
popup_mc.container_mc.img_mc.onRollOver = function() {
Mouse.hide();
var init:Object = new Object();
init._x = ruta_mc._xmouse;
init._y = ruta_mc._ymouse;
ruta_mc.cursor_mc.removeMovieClip();
ruta_mc.attachMovie("handCursor", "cursor_mc", ruta_mc.getNextHighestDepth(), init);
};
popup_mc.container_mc.img_mc.onRollOut = function() {
Mouse.show();
ruta_mc.cursor_mc.removeMovieClip();
};
popup_mc.container_mc.img_mc.onMouseDown = function() {
this.startDrag(false, 0, 0, -1*(this._width)+366.7, -1*(this._height)+363.9);
Mouse.hide();
var init:Object = new Object();
init._x = ruta_mc._xmouse;
init._y = ruta_mc._ymouse;
ruta_mc.cursor_mc.removeMovieClip();
ruta_mc.attachMovie("handCursor", "cursor_mc", ruta_mc.getNextHighestDepth(), init);
};
popup_mc.container_mc.img_mc.onMouseMove = function() {
ruta_mc.cursor_mc._x = ruta_mc._xmouse;
ruta_mc.cursor_mc._y = ruta_mc._ymouse;
this.clase.drawZoom(ruta_mc.pop_mc.bb);
updateAfterEvent();
};
popup_mc.container_mc.img_mc.onMouseUp = function() {
Mouse.show();
this.stopDrag();
ruta_mc.cursor_mc.removeMovieClip();
};
popup_mc.titulo_txt.text = ".:: Imagen Nº "+imagen+" ::.";
popup_mc.navbar_mc.imagen_txt.text = "Imagen Nº "+imagen;
with (popup_mc) {
cerrar_btn.enabled = atras_btn.enabled=adelante_btn.enabled=true;
navbar_mc._visible = true;
navbar_mc.tamano_txt.text = container_mc.img_mc._width+"px x "+container_mc.img_mc._height+"px";
}
}
public function drawZoom(board_mc:MovieClip):Void {
var con_mc:MovieClip = popup_mc.container_mc.img_mc;
board_mc.clear();
board_mc.lineStyle(1, 0x000000, 100);
board_mc.beginFill(0xFFFFFF, 50);
board_mc.moveTo(0, 0);
board_mc.lineTo(con_mc._width*.1, 0);
board_mc.lineTo(con_mc._width*.1, con_mc._height*.1);
board_mc.lineTo(0, con_mc._height*.1);
board_mc.endFill();
var x:Number = -1*(con_mc._x*.1);
var y:Number = -1*(con_mc._y*.1);
board_mc.moveTo(x, y);
board_mc.lineTo(x, y+36.43);
board_mc.lineTo(x+33.69, y+36.43);
board_mc.lineTo(x+33.69, y);
board_mc.lineTo(x, y);
}
}


imágenes.as
---------------------



import cristalab.galeria.Foto;
class cristalab.galeria.Imagenes {
//Aqui sabre el ambito en el que estoy, no es bueno usar _root
var ruta_mc:MovieClip;
//En esta variable se cargara el titulo de la galeria
private var tit:String;
//Aqui el numero de imagenes que tiene
private var nImg:Number;
//Fotografia grande
public var foto:Foto;
//Esta sera nuestra variable de paginación de fotos
private var paginas:Array;
//Esta dira la pagina actual
private var pActual:Number;
//Hilos de aparición
private var hilos:Array;
/*Evento lanzando al terminar de cargar
A que es una manera creativa de crear eventos, no? ;)*/
public var onCarga:Function;
//Constructor de la clase
function Imagenes(archXML:String, ruta:MovieClip) {
var conf_xml:XML;
tit = new String();
nImg = new Number();
pActual = new Number();
onCarga = null;
ruta_mc = ruta;
_global.esto = this;
conf_xml = new XML();
conf_xml.ignoreWhite = true;
conf_xml.onLoad = cargarXML;
conf_xml.load(archXML);
}
//función asignada a objeto XML para cargar
private function cargarXML(exito:Boolean) {
if (exito) {
var nodo:XML = new XML();
//Extraño, inconcluso pero necesario Cast
nodo = XML(this);
_global.esto.titulo = nodo.firstChild.childNodes[1].firstChild.nodeValue;
_global.esto.nImagenes = nodo.firstChild.childNodes[0].firstChild.nodeValue;
_global.esto.onCarga();
} else {
trace("Error al cargar XML");
}
}
//repagina los thumbnails
public function paginar():Void {
var i:Number;
var tam:Number;
var mod:Number;
tam = parseInt(String(nImagenes/12));
paginas = new Array(tam);
for (i=0; i<paginas.length; i++) {
paginas[i] = 12;
}
mod = nImagenes%12;
if (mod) {
paginas[tam] = mod;
}
}
//Redibuja las fotos en el escenario
public function cambiarPagina(pagina:Number) {
var i:Number;
var elem:Number;
var init:Object;
elem = paginas[pagina-1];
hilos = new Array(elem);
for (i=0; i<12; i++) {
ruta_mc["mFoto"+i].removeMovieClip();
}
for (i=0; i<elem; i++) {
init = new Object();
init = calcularPos(i);
init.elem = i;
init.img = i+(12*(pagina-1));
hilos[i] = setInterval(this.materializar, 20*(i+1), init);
init = null;
}
}
//Materializa cada imagen en el escenario
private function materializar(initObj:Object):Void {
_global.esto.ruta_mc.attachMovie("mFoto", "mFoto"+initObj.elem, initObj.elem+1, initObj);
clearInterval(_global.esto.hilos[initObj.elem]);
}
//Calcula la posición en la que debe aparecer cada objeto
private function calcularPos(nObjeto:Number):Object {
nObjeto++;
var obj:Object;
obj = new Object();
obj._x = obj._y=new Number();
if ((nObjeto%6) == 0) {
obj._x = 6;
obj._y = parseInt(String(nObjeto/6))-1;
} else {
obj._x = nObjeto%6;
obj._y = parseInt(String(nObjeto/6));
}
obj._y;
obj._y = _global.initY+((90+20)*(obj._y));
obj._x = _global.initX+((77+19)*(obj._x-1));
return obj;
}
public function openImg(imagen:Number):Void {
ruta_mc.createEmptyMovieClip("drw_mc", ruta_mc.getNextHighestDepth());
ruta_mc.drw_mc._x = ruta_mc.drw_mc._y=0;
ruta_mc.drw_mc.beginFill(0x999999, 50);
ruta_mc.drw_mc.moveTo(0, 0);
ruta_mc.drw_mc.lineTo(ruta_mc._width, 0);
ruta_mc.drw_mc.lineTo(ruta_mc._width, ruta_mc._height);
ruta_mc.drw_mc.lineTo(0, ruta_mc._height);
ruta_mc.drw_mc.endFill();
ruta_mc.drw_mc.useHandCursor = false;
ruta_mc.drw_mc.onRelease = function() {
//
};
foto = new Foto(imagen, ruta_mc);
}
public function closeImg():Void {
ruta_mc.drw_mc.removeMovieClip();
ruta_mc.pop_mc.removeMovieClip();
foto = null;
delete foto;
}
//Setters | Getters
public function get nImagenes():Number {
return this.nImg;
}
public function set nImagenes(numero:Number):Void {
this.nImg = numero;
}
public function get titulo() {
return ".:: "+this.tit+" ::.";
}
public function set titulo(nombre:String):Void {
this.tit = nombre;
}
public function get nPaginas():Number {
return Number(this.paginas.length);
}
}


mini.as
---------



import cristalab.galeria.Preloader;
class cristalab.galeria.Mini {
private var nFoto:Number;
private var ruta:String;
private var ruta_mc:MovieClip;
function Mini(mc:MovieClip, num:Number) {
num++;
setRuta(num);
nFoto = num;
ruta_mc = mc;
cargarFoto();
ruta_mc.onRelease = function() {
this.openImg(this.elem);
};
}
private function cargarFoto():Void {
var loader = ruta_mc.createEmptyMovieClip("foto_mc", 1);
var precarga:Preloader = new Preloader(loader, ruta, ruta_mc.drw_mc, ruta_mc, this, calcularPos);
}
private function calcularPos():Void {
var img_mc:MovieClip;
img_mc = ruta_mc.foto_mc;
img_mc._visible = false;
img_mc._x = img_mc._y=0;
var hilo = setInterval(function () {
img_mc._x = (77/2)-(img_mc._width/2);
img_mc._y = (90/2)-(img_mc._height/2);
img_mc._visible=true;
clearInterval(hilo);
}, 100);
}
private function setRuta(n:Number):Void {
ruta = new String();
ruta = "/images/mini/mini"+n+".jpg";
}
}


Preloader
-------------



class cristalab.galeria.Preloader {
private var acargar;
private var callback;
//Ruta a cargar
private var ruta:String;
private var blackBoard:MovieClip;
private var ruta_mc:MovieClip;
private var hilo:Number;
private var ambito;
function Preloader(obj, ruta:String, blackboard:MovieClip, container:MovieClip, ambito, callback) {
this.ambito = ambito;
this.callback = callback;
this.ruta = ruta;
this.blackBoard = blackboard;
acargar = obj;
ruta_mc = container;
cargador(acargar, this);
}
private function cargador(load_mc, clase):Void {
var loader_mcl:MovieClipLoader = new MovieClipLoader();
var lListener:Object = new Object();
clase.dibujar(1, 100);
lListener.onLoadStart = function() {
clase.dibujar(1, 100);
};
lListener.onLoadProgress = function(loading, loaded, total) {
clase.dibujar(loaded, total);
};
lListener.onLoadComplete = function(loaded) {
clase.blackBoard.clear();
clase.callback();
};
loader_mcl.addListener(lListener);
loader_mcl.loadClip(clase.ruta, load_mc);
}
private function dibujar(cargados:Number, total:Number):Void {
var llena:Number;
var laX:Number;
var laY:Number;
var anX:Number;
var anY:Number;
var porcentaje:Number;
llena = blackBoard._width*.78;
porcentaje = parseInt(String((cargados*100)/total));
blackBoard.lineStyle(0, 0x666666, 100);
// Dibujamos el cuadro contenedor
laX = ((blackBoard._width/2)*.2);
laY = (blackBoard._height/2)-7;
anX = laX;
anY = laY;
blackBoard.beginFill(0xFFFFFF, 50);
blackBoard.moveTo(laX, laY);
laX += (llena+2);
blackBoard.lineTo(laX, laY);
laY += 14;
blackBoard.lineTo(laX, laY);
laX -= (llena+2);
blackBoard.lineTo(laX, laY);
blackBoard.endFill();
// Creamos la barra de
laX = ((blackBoard._width/2)*.2)+2;
laY = (blackBoard._height/2)-5;
blackBoard.beginFill(0x666666, 50);
blackBoard.moveTo(laX, laY);
laX += (llena*(porcentaje/100));
blackBoard.lineTo(laX, laY);
laY += 10;
blackBoard.lineTo(laX, laY);
laX -= (llena*(porcentaje/100));
blackBoard.lineTo(laX, laY);
blackBoard.lineTo(anX, anY);
blackBoard.endFill();
}
}



Esos son los codigos que tengo dentro de los archivitos .as

Abrazo

Gracias CHINI como siempre

Por Gualicho

22 de clabLevel



 

Argentina

firefox
Citar            
MensajeEscrito el 24 Sep 2008 09:43 pm

Foto.as



En esta línea:

Código ActionScript :

var precarga:Preloader = new Preloader(popup_mc.container_mc.img_mc, "/images/normal/"+imagen+".jpg", popup_mc.drw_mc, popup_mc.container_mc, this, onLoadImg);


Elimina el slash:

Código ActionScript :

var precarga:Preloader = new Preloader(popup_mc.container_mc.img_mc, "images/normal/"+imagen+".jpg", popup_mc.drw_mc, popup_mc.container_mc, this, onLoadImg);


Mini.as



En esta línea:

Código ActionScript :

ruta = "/images/mini/mini"+n+".jpg";


quita el slash también:

Código ActionScript :

ruta = "images/mini/mini"+n+".jpg";


Recuerda que cuando vayas a postear códigos de Action Script lo debes hacer entre tags de AS:

Código :

[as]
//---Tus códigos aquí
[/as]

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 24 Sep 2008 09:47 pm
lo voy a probar esta noche y te aviso...
Un grande Chini, gracias como siempre!

Por Gualicho

22 de clabLevel



 

Argentina

firefox
Citar            
MensajeEscrito el 25 Sep 2008 02:12 pm
probe de cambiar estos datos que me dijiste (eliminar los slash) pero sigue sin funcionar, baje el sitio completo de internet y lo probe nuevamente en mi máquina y funciona a la perfección, :twisted:
si bien la idea era no darme por vencido con esta galeria me parece que ya voy a empezar a buscar una nueva... :|
Te agradezco por toda la ayuda chini amigo...
Un abrazo

Por Gualicho

22 de clabLevel



 

Argentina

firefox
Citar            
MensajeEscrito el 25 Sep 2008 07:49 pm
Entonces al igual que en el tutorial pon la ruta completa hacia las imágenes:

Código ActionScript :

ruta = "http://www.tuservidor/images/mini/mini"+n+".jpg"; 

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 25 Sep 2008 08:00 pm
:? :? :? :?
Esto debería funcionar...
Si no funciona esto...

GRACIAS DE NUEVO!

Por Gualicho

22 de clabLevel



 

Argentina

firefox

 

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