Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Eugênio Telles

Sumir com fotos em galeria de fotos

Recommended Posts

Fala pessoal!

 

Estou usando essa galeria aqui http://www.no3dfx.com/polaroid/ e estou com um probleminha.

 

Cada página do site está em um quadro. Qndo acessado o quadro com a galeria as imagens aparecem como esperado, mas ao mudar de página (quadro), as fotos se mantém na tela. Não sei como fazer as fotos sumirem....

 

Alguem tem uma solucao pra isso?

Segue o código:

 

////////////////////////////////
// <imports>
import flash.filters.*;
import flash.display.BitmapData;
// </imports>
////////////////////////////////

////////////////////////////////
// <vars>
var photoHolder = new Array();
var skalerTempo = 3;
var thumbStr = 30;
var stageHeight = Stage.height/2;
var stageWidth = Stage.width/2;
var fotoSkygge:DropShadowFilter = new DropShadowFilter(0, 45, 0x333333, 0.5, 10, 10, 2, 3);
var glow:GlowFilter = new GlowFilter(0xFFFFFF,100,150,150,0.1,3,true,true);
var bakgrunnPattern:BitmapData = BitmapData.loadBitmap("fundo1");
// </vars>
////////////////////////////////

////////////////////////////////
// <init>
_root.createEmptyMovieClip("bakgrunsHolder",_root.getNextHighestDepth());
_root.createEmptyMovieClip("sideGlow", _root.getNextHighestDepth());
// </init>
////////////////////////////////

////////////////////////////////
// <generer fotovariabler>
flickrTAGS = (flickrTAGS) ? flickrTAGS:"";
xmlURL = (xmlURL) ? xmlURL:"photos.xml";
xmlURL = (flickrID) ? "http://api.flickr.com/services/feeds/photos_public.gne?id="+flickrID+"&tags="+flickrTAGS+"&tagmode=any&format=rss_200":xmlURL;
////
// Flickr feed
////
var loadet_xml:XML = new XML();
loadet_xml.ignoreWhite = true;
loadet_xml.onLoad = function (success){
	var loop = (flickrID) ? loadet_xml.firstChild.firstChild.childNodes:loadet_xml.firstChild.childNodes;
	var num = 0;		
	if (flickrID) {
		for (var i = 0;i < loop.length;i++) {
			if (loop[i].nodeName == "item") {
				var loop2 = loop[i].childNodes;
				photoHolder[num] = new Array();
				for (var i2 = 0;i2 < loop2.length;i2++) {
					if (loop2[i2].nodeName == "media:content") {
						photoHolder[num].url = loop2[i2].attributes.url;
					}
					else if (loop2[i2].nodeName == "title") {
						photoHolder[num].desc = loop2[i2].firstChild;
					}
				}
				num++;
			}
		}
	}
	else {
		for (i=0;i < loop.length;i++) {
			photoHolder[i] = loop[i].attributes;
		}
	}
	delete loadet_xml;
	byggBilder();
}
loadet_xml.load(xmlURL);
// </generer fotovariabler>
////////////////////////////////

////////////////////////////////
// <bygg polaroids>
function byggBilder() {
	for (i=0;i < photoHolder.length;i++) {
		mc = _root.attachMovie("fotoHolder","fotoHolder"+i,_root.getNextHighestDepth(),{_xscale:thumbStr, _yscale:thumbStr,_rotation:30 - 60*Math.random()});
		mc.txt.text = photoHolder[i].desc;
		if (Math.round(Math.random()*1) == 1) {
			// tilfeldig y akse
			mc._y = (Stage.height*Math.random())+(mc._height*2);
			if (Math.round(Math.random()*1) == 1) mc._x = Stage.width+(mc._width*2);
			else mc._x = -(mc._width*2);
		}
		else {
			// tilfeldig x akse
			mc._x = (Stage.width*Math.random())+(mc._width*2);
			if (Math.round(Math.random()*1) == 1) mc._y = Stage.height+(mc._height*2);
			else mc._y = -(mc._height*2);
		}
		mc.newX = Math.round((mc._width/2) + (Stage.width-mc._width)*Math.random());
		mc.newY = Math.round((mc._height/2) + (Stage.height-mc._height)*Math.random());
		mc.oldRotation = mc._rotation;
		mc.oldX = mc.newX;
		mc.oldY = mc.newY;
		mc.startX = mc._x;
		mc.startY = mc._y;
		mc.oldHeight = mc._yscale;
		mc.oldWidth = mc._xscale;
		mc.id = i;
		mc.onEnterFrame = fotoAnimer;
		mc.filters = [fotoSkygge];
		mc.dragPol.onPress = drag;
		mc.dragPol.onReleaseOutside = mc.dragPol.onRelease = stopdrag;
		photoHolder[i].mc = mc;
		lastBilde(mc,photoHolder[i].url);
		delete mc;
	}
	antallBilder = i;
}
function lastBilde(mc, url) {
	mc.createEmptyMovieClip("tmp",mc.getNextHighestDepth());
	lastBildeH.loadClip(url, (flickrID) ? mc.bildeHolder:mc.tmp);
}
var lastBildeH:MovieClipLoader = new MovieClipLoader();
var lastBildeHL:Object = new Object();
lastBildeHL.onLoadStart = function(mc:MovieClip):Void {
	mc._parent.attachMovie('preLoader','preloader',mc._parent.getNextHighestDepth());
	loaderFarge = new Color(mc._parent.preloader);
	mc._parent.preloader.loadtxt.text = "";
	loaderFarge.setRGB(0xFFFFFF);
	mc._parent.preloader._y = -10;
	mc._visible = false;
}
lastBildeHL.onLoadProgress = function(mc:MovieClip, numBytesLoaded:Number, numBytesTotal:Number):Void {
	var numPercentLoaded:Number = numBytesLoaded / numBytesTotal * 100;
	mc._parent.preloader.percent._width = numPercentLoaded;
}
lastBildeHL.onLoadInit = function(mc:MovieClip) {
	mc._parent.preloader.removeMovieClip();
	var mc2 = mc._parent.bildeHolder;
	if (!flickrID) {
		var myBitmap = new BitmapData(mc._width, mc._height,true,0xFFFFFF);
		myBitmap.draw(mc);
		mc._parent.bildeHolder.attachBitmap(myBitmap, mc._parent.bildeHolder.getNextHighestDepth(), "auto", true);
		mc.removeMovieClip();
		}
	
	/////
	// scale and place image
	////

	var wP = 468/mc2._width;
	var hP = 450/mc2._height;
	mc2._width *= (wP < hP) ? hP:wP;
	mc2._height *= (wP < hP) ? hP:wP;
	mc2._x += -((mc2._width-468)/2);
	mc2._y += -((mc2._height-450)/2);
	mc2._visible = true;
}
lastBildeH.addListener(lastBildeHL);
// </bygg polaroids>
////////////////////////////////

////////////////////////////////
// <hjelpeboks>
_root.attachMovie("help","help",_root.getNextHighestDepth());
help._x = 42;
help._y = 48;
help.filters = [fotoSkygge];
// </hjelpeboks>
////////////////////////////////

function rensFilm() {
	for (i=0;i<antallBilder;i++) {
		mc = eval("fotoHolder"+i);
		mc.oldY = mc.startY;
		mc.oldX = mc.startX;
		mc.onEnterFrame = fotoAnimerTilbake;
		removeMovieClip(navigering);
	}
}
function fotoAnimer() {
	this._y += (this.newY-this._y)/skalerTempo;
	this._x += (this.newX-this._x)/skalerTempo;
	if (Math.round(this._y) == this.newY) delete this.onEnterFrame;
}
function fotoAnimerTilbake() {
	this._y += (this.oldY-this._y)/skalerTempo;
	this._x += (this.oldX-this._x)/skalerTempo;
	this._xscale += (this.oldWidth-this._xscale)/skalerTempo;
	this._yscale += (this.oldHeight-this._yscale)/skalerTempo;
	this._rotation += (this.oldRotation-this._rotation)/skalerTempo;
	this.nesteKnapp._alpha += (0-this.nesteKnapp._alpha)/skalerTempo;
	this.forrigeKnapp._alpha += (0-this.forrigeKnapp._alpha)/skalerTempo;
	if ((Math.round(this._y) == this.oldY) && (Math.round(this._x) == this.oldX)) {
		delete this.nesteKnapp.onRelease;
		delete this.forrigeKnapp.onRelease;
		delete this.onEnterFrame;
	}
}
function fotoSkaler() {
	this._xscale += (100-this._xscale)/skalerTempo;
	this._yscale += (100-this._yscale)/skalerTempo;
	this._rotation += (this.newRotation-this._rotation)/skalerTempo;
	this._x += ((Stage.width/2)-this._x)/skalerTempo;
	this._y += ((Stage.height/2)-this._y)/skalerTempo;
	this.nesteKnapp._alpha += (60-this.nesteKnapp._alpha)/skalerTempo;
	this.forrigeKnapp._alpha += (60-this.forrigeKnapp._alpha)/skalerTempo;
	if (Math.round(this._width) == this.newWidth) {
		delete this.onEnterFrame;
	}
}
function drag() {
	if ((fotoSomBlirVist != this._parent) && (!this._parent.onEnterFrame)) this._parent.startDrag();
	if (!this.click) {
		this.click = true;
		this.timer = getTimer()/1000;
	}
	else {
		this.timer2 = getTimer()/1000;
		if ((this.timer2-this.timer)<.25) {
			visFoto(this._parent);
		}
		else {
			this.timer = getTimer()/1000;
			this.click = true;
		}
	}
	this._parent.swapDepths(_root.getNextHighestDepth());
	if (fotoSomBlirVist) fotoSomBlirVist.swapDepths(_root.getNextHighestDepth());
}
function stopdrag() {
	mc = this._parent;
	mc.stopDrag();
	if ((fotoSomBlirVist != mc) && (!mc.onEnterFrame)) {
		mc.oldX = Math.round(mc._x);
		mc.oldY = Math.round(mc._y);
	}
}
function visFoto(mc:MovieClip) {
	if (fotoSomBlirVist == mc) {
		fotoSomBlirVist.onEnterFrame = fotoAnimerTilbake;
		delete fotoSomBlirVist;
	}
	else {
		fotoSomBlirVist.onEnterFrame = fotoAnimerTilbake;
		mc.newRotation = 0;
		mc.oldRotation = mc._rotation;
		mc.nesteKnapp.onRelease = function() { visNeste(); }
		mc.forrigeKnapp.onRelease = function() { visForrige(); }
		mc.onEnterFrame = fotoSkaler;
		fotoSomBlirVist = mc;
	}
	if (fotoSomBlirVist) fotoSomBlirVist.swapDepths(_root.getNextHighestDepth());
}
function visNeste() {
	var nb = 0;
	if (fotoSomBlirVist) {
		nb = fotoSomBlirVist.id +1;
		if (nb == antallBilder) nb = 0;
	}
	visFoto(eval("fotoHolder"+nb));
}
function visForrige() {
	var fb = 0;
	if (fotoSomBlirVist) {
		fb = fotoSomBlirVist.id -1;
		if (fb < 0) fb = antallBilder-1;
	}
	visFoto(eval("fotoHolder"+fb));
}
var stageL:Object = new Object();
stageL.onResize = function() {
	for (i=0;i<antallBilder;i++) {
		mc = eval("fotoHolder"+i);
		if (mc != fotoSomBlirVist) {
			mc._x = Math.round(Stage.width * (mc._x/stageWidth));
			mc._y = Math.round(Stage.height * (mc._y/stageHeight));
		}
		else {
			fotoSomBlirVist._x = Stage.width/2;
			fotoSomBlirVist._y = Stage.height/2;
		}
		mc.oldX = Math.round(Stage.width * (mc.oldX/stageWidth));
		mc.oldY = Math.round(Stage.height * (mc.oldY/stageHeight));
		mc.newX = Math.round(Stage.width * (mc.newX/stageWidth));
		mc.newY = Math.round(Stage.height * (mc.newY/stageHeight));
		mc.startX = Math.round(Stage.width * (mc.startX/stageWidth));
		mc.startY = Math.round(Stage.height * (mc.startY/stageHeight));
	}
	stageWidth = Stage.width;
	stageHeight = Stage.height;
	fillBG();
	fyllGlow();
}
Stage.addListener(stageL);


////////////////////////////////
// <bakgrunn>

function fillBG() {
	with (bakgrunsHolder) {
	clear();
	beginBitmapFill(bakgrunnPattern);
	moveTo(0,0);
	lineTo(Stage.width,0);
	lineTo(Stage.width,Stage.height);
	lineTo(0,Stage.height);
	lineTo(0,0);
	endFill();
	}
}

function fyllGlow() {
	with (sideGlow) {
		clear();
		filters = [glow];
		beginFill(0xFFFFFF);
		moveTo(0, 0);
		lineTo(Stage.width, 0);
		lineTo(Stage.width, Stage.height);
		lineTo(0, Stage.height);
		lineTo(0, 0);
		endFill();
	}
}

fillBG();
fyllGlow();
// </bakgrunn>

Compartilhar este post


Link para o post
Compartilhar em outros sites

você quer apagar as fotos anteriores antes de mostrar as novas certo, pelo que vi no codigo, ele cria uns movieCLips no _root, nessa linha:

 

 

mc = _root.attachMovie("fotoHolder","fotoHolder"+i,_root.getNextHighestDepth(),{_xscale:thumbStr, _yscale:thumbStr,_rotation:30 - 60*Math.random()});

 

 

o que você tem que fazer seria criar uma função que apagasse esses mcs, seria assim:

 

 

function apagaTudo(){

 for (i=0;i < photoHolder.length;i++) {
	 removeMovieClip(_root.["fotoHolder"+i])
 }

}

 

basta chamar ela sempre que trocar de pagina, talvez precise fazer mais coisa como zerar uma variavel, eu não testei mas o caminho é esse, veja o que ele faz na função byggBilder, e tente "desfazer" nessa função apagaTudo

 

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta adicionar essa linha no inicio do 1º frame dessa galeria

 

 

this._lockroot = true

 

isso faz com que ela não mude a referencia ao _root ao ser carregada

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Show eder! vlw... apareceram as imagens perfeitamente. mas na hr de mandar o unload no MC, as fotos continuam. Tentei com aquele AS q você boto num post anterior e nao rolo. Dão os seguintes erros:

 

Expected a field after '.' operator.
e
Unexpected '}' encountered

Cai denovo no problema de sumir com as fotos...

Compartilhar este post


Link para o post
Compartilhar em outros sites

achei um erro nela, seria assim:

 

function apagaTudo(){

 for (i=0;i < photoHolder.length;i++) {
	 removeMovieClip(_root["fotoHolder"+i])
 }

}

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

achei um erro nela, seria assim:

 

function apagaTudo(){

 for (i=0;i < photoHolder.length;i++) {
	 removeMovieClip(_root["fotoHolder"+i])
 }

}

 

[]´s

 

Onde e como utilizar esse código?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.