1.- tengo una galeria de imagenes (galeria.swf) la cual carga las imagenes con propiedad y su descripción desde a través de un archivo XML (photos.xml).
2.- Tengo dentro de galeria.swf un movie clip (fotoHolder) que a su vez contiene otro mc (la imagnes son cargadas detro de un mc (bildeHolder) que es donde se cargan las imagene y tambien tengo un campo de texto_dinamico (con instancia: "txt") que es donde se carga la descripción de la foto.
Necesito que me ayuden en hacer una de las siguienes opciones (o si me pueden dar más opciones se los agradecería infinitamente):
a).- Poner dentro de fotoHolder_mc un botón que contenga una orden para abrir un html o jpg en otra pagina, pero que la orden no sea una dirección establecida, sino que cambie según la foto que se este mostrando. Creo que se trata de poner una orden que este tomando la url desde el archivo XML.
b).- Poner un link entre la descripción de la foto, en el archivo XML y que pueda ser leida en el campo de texto dinamico que ya tengo y quede habilitada la opcion de hacer click directamente.
les anoto el codigo que tengo en flash:
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; var stageWidth = Stage.width; var fotoSkygge:DropShadowFilter = new DropShadowFilter(0, 45, 0x333300, 0.8, 10, 10, 2, 3); var glow:GlowFilter = new GlowFilter(0x333300,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; if (Math.round(Math.random()*1) == 1) { // tilfeldig y akse mc._y = (460*Math.random())+(mc._height*2); if (Math.round(Math.random()*1) == 1) mc._x = 800+(mc._width*2); else mc._x = -(mc._width*2); } else { // tilfeldig x akse mc._x = (800*Math.random())+(mc._width*2); if (Math.round(Math.random()*1) == 1) mc._y = 460+(mc._height*2); else mc._y = -(mc._height*2); } mc.newX = Math.round((mc._width/2) + (800-mc._width)*Math.random()); mc.newY = Math.round((mc._height/2) + (460-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(); } ///// this.thumbHolder.desc = this.picHolder.attributes.texturl; this.thumbHolder.link = this.picHolder.attributes.url; ///// // scale and place image //// var wP = 492/mc2._width; var hP = 369/mc2._height; mc2._width *= (wP < hP) ? hP:wP; mc2._height *= (wP < hP) ? hP:wP; mc2._x += -((mc2._width-492)/2); mc2._y += -((mc2._height-369)/2); mc2._visible = true; } lastBildeH.addListener(lastBildeHL); // </bygg polaroids> //////////////////////////////// //////////////////////////////// // <hjelpeboks> _root.attachMovie("help","help",_root.getNextHighestDepth()); help._x = 290; help._y = 120; 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> ////////////////////////////////
y este es el codigo que tengo en el xml
Código :
</photos><?xml version="1.0" encoding="utf-8"?> <photos> <!-- Aki las fotos --> <photo desc="EQUIPO TRUJILLO" url="_pics/1.jpg"/> <photo desc="MEGAMAK" url="_pics/2.jpg" /> <photo desc="CAMPEON" url="_pics/3.jpg" /> <photo desc="SUB-CAMPEON" url="_pics/4.jpg" /> <photo desc="TROFEO CAMPEON" url="_pics/5.jpg" /> <photo desc="TROFEO CAMPEON DE GOLEO" url="_pics/6.jpg" /> <photo desc="TROFEOS" url="_pics/7.jpg" /> <photo desc="CUARTO LUGAR" url="_pics/8.jpg" /> <photo desc="CEREMONIA DE PREMIACION" url="_pics/9.jpg" /> <photo desc="MOMENTOS DE PREMIACION" url="_pics/10.jpg" /> <photo desc="MOMENTOS DE LA PREMIACION" url="_pics/11.jpg" /> </photos>
echenme una mano please...