Ir para conteúdo
Fórum Script Brasil

mauje

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre mauje

mauje's Achievements

0

Reputação

  1. Amigos, mais uma vez eu aqui pedindo um socorro. Estou fazendo um site em flash, mas como não sei quase nada de Flash, as e xml, vou aprendendo com cópias, modelos e muito erro. Numa área do site usei um modelo de uma galeria de imagens - Polaroid Gallery (v 1.01) - que serviu bem para o que eu precisava depois de algumas adaptações. Há um exemplo desse template aqui: http://www.no3dfx.com/polaroid/. O problema é que não consigo resolver uma das coisas que preciso criar sobre o modelo e emperrei o projeto. O pior é que acho que é relativamente simples... Mas pra mim tá dificil. Agradeceria muito qualquer ajuda! O modelo abre um novo mc quando o usuário clica em uma das imagens reduzidas. Esse novo mc exibe a imagem maior e tem dois botões, para avançar ou retroceder para outra imagem. (Como podem ver no link com exemplo que postei acima). O que quero: Adicionar um terceiro botão que ao clicar chama uma outra página (getURL, _blank) com uma imagem referenciada na linha do XML que indica a imagem carregada no mc. O que fiz até agora: criei o novo botão no template (que seguindo o modelo é um mc). Atribui nome, criei uma nova função no as. Até aí eu fui. Qual o problema: Não consigo (não sei como fazer e já tentei muita coisa) indicar no código a atribuição de uma variável relativa ao caminho da imagem que foi carregada no mc e que está indicada no arquivo xml. Alguém poderia dar uma luz? Segue o código que estou usando. Não liguem, por favor, que está cheio de remendos e modificações que fui fazendo e testando para adaptar ao meu projeto. Para explicar o que tentei abaixo: criei a função visAbrir() que está no bloco //nova função// que é chamada ao clicar no botão que criei. Isto funcionou. Mas o que quero é carregar para ela a url da imagem, que está no tag url do arquivo xml. //////////////////////////////// // Project: Polaroid Gallery (v 1.01) // Author: Christopher Einarsrud // Edited: 16/07/2007 // This work is licensed under a Creative Commons Attribution-NonCommercial 3.0 License. // For more information, read http://creativecommons.org/licenses/by-nc/3.0/ //////////////////////////////// //////////////////////////////// // <imports> import flash.filters.*; import flash.display.BitmapData; // </imports> //////////////////////////////// //////////////////////////////// // <vars> var photoHolder = new Array(); var skalerTempo = 3; var thumbStr = 15; var stageHeight = Stage.height; var stageWidth = Stage.width; //var fotoSkygge:DropShadowFilter = new DropShadowFilter(0, 45, 0x333333, 0.8, 10, 10, 2, 3); //var glow:GlowFilter = new GlowFilter(0x333333,100,150,150,1.5,3,true,true); //var bakgrunnPattern:BitmapData = BitmapData.loadBitmap("bakgrunn"); // </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; var nx = photoHolder[i].desc; if (Math.round(Math.random()*1) == 1) { // tilfeldig y akse mc._y = (mural._height*Math.random())+(mural._y+15); if (Math.round(Math.random()*1) == 1) mc._x = (mc._width)+mural._x; else mc._x = (mc._width)+(mural._x); } else { // tilfeldig x akse mc._x = (mural._width*Math.random())+(mural._x); if (Math.round(Math.random()*1) == 1) mc._y = (mc._height*2)+mural._y; else mc._y = (mc._height)+((mural._y)*Math.random())+15; } mc.newX = Math.round((mural._x) + ((mural._width-mc._width)*Math.random())); mc.newY = Math.round((mural._y) + ((mural._height-mc._height/2)*Math.random())+30); 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); var rs = phtoHolder[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 = 1000/mc2._width; var hP = 455/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._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 += (40-this._xscale)/skalerTempo; this._yscale += (40-this._yscale)/skalerTempo; this._rotation += (this.newRotation-this._rotation)/skalerTempo; //this._x = 100; //this._y = 230; //this._x += (((Stage.width/2)-(mural._width/2))-this._x)/skalerTempo; //this._y += (((Stage.height/2)-(mural._height/2))-this._y)/skalerTempo; //this._x += ((Stage.width/2)-this._x)/skalerTempo; //this._y += ((Stage.height/2)-this._y)/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.abrirKnapp.onRelease = function() { visAbrir(mc, photoHolder[i].desc); } 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)); } //nova funcao// function visAbrir() { getURL("mural/dicas/"+mc,"_blank"); } //nova funcao// 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/2)-200) + (400*(mc._x/stageWidth))); //mc._y = Math.round(((Stage.height/2)-150) + (300*(mc._y/stageHeight))); //mc._x = Math.round(Stage.width * (mc._x/stageWidth)); //mc._y = Math.round(Stage.height * (mc._y/stageHeight)); //mc._x = Math.round((Stage.width/2)-(mural._width/2) + (mc._x/mural._width)); //mc._y = Math.round((Stage.height/2)-(mural._height/2) + (mc._y/mural._height)); mc._x = Math.round(mural._width * (mc._x/Stage.width)) + (mural._width); mc._y = Math.round(mural._height * (mc._y/Stage.height)) + (mural._height); } else { fotoSomBlirVist._x = mural._width/2; fotoSomBlirVist._y = mural._height/2; } //mc.oldX = Math.round(((Stage.width/2)-(mural._width/2)) + (mural._width*(mc.oldX/mural._width))); //mc.oldY = Math.round(((Stage.height/2)-(mural._height/2)) + (mural._height*(mc.oldY/mural._height))); //mc.newX = Math.round(((Stage.width/2)-(mural._width/2)) + (mural._width*(mc.newX/mural._width))); //mc.newY = Math.round(((Stage.height/2)-(mural._height/2)) + (mural._height*(mc.newY/mural._height))); //mc.startX = Math.round(((Stage.width/2)-(mural._width/2)) + (mural._width*(mc.startX/mural._width))); //mc.startY = Math.round(((Stage.height/2)-(mural._height/2)) + (mural._height*(mc.startY/mural._height))); 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> //////////////////////////////// Muito obrigado!
×
×
  • Criar Novo...