Comunidad de diseño web y desarrollo en internet online

ayuda con flash+php+mySql, por favor...

Citar            
MensajeEscrito el 22 Nov 2010 06:52 pm
hola, como estan?
estoy dando mis primeros pasos con aplicaciones en flash que cargan informacion desde una base de datos creada en mySql;
estoy personalizando un .fla de uso libre con el look and feel del cover flow de iTunes; este flash levanta info de un xml, pero yo he creado una base de datos con administrador en php, q le estaria pasando las modificaciones al flash, x medio de un xml;
he conseguido levantar los datos de texto de mi base de datos, pero no logro mostrar las imagenes (que tengo en uno de los nodos del xml q cargo) en el cargador de imagenes;
si alguien pudiera guiarme para poder visualizar las imagenes desde mi base, se los agradeceria mucho!
aqui les dejo el codigo, y desde ya muchas gracias x anticipado;

Código ActionScript :

/*/
iTunes Album Art Viewer
/*/
import flash.display.*;
import flash.geom.*;
import flash.filters.*;
//Change these values below to customize the viewer fuctionality
var root:MovieClip = this;
var myMO:Object;
var myKO:Object;
var loadedAll:Boolean;
var distance:Number;
var autoJump:Number = 0.15;
var maxSlide:Number = 100;
var deleteMinDistance:Number = 0;
// Edit by MacHappens, James Rowley
// "The Elevator Door"
var deleteMaxDistance:Number = Stage.width;
var doubleClickRegister:Number = 500;
var frontCDWidth:Number = 206;
var frontCDHeight:Number = 260;
var shelveCDHeight:Number = 200;
var shelveCDWidth:Number = 150;
var shelveCDSpacing:Number = 80;
var centerDistance:Number = 50;
var albumEase:Number = 4;
var angle:Number = 3;
var fadePoint:Number = Stage.width;
var fadeDist:Number = 100;
var current:Number = 1;
var centerX:Number = Stage.width / 2;
var centerY:Number = 135;
var clickDelay:Number = 750;
var scrollBarStart:Number = 0;
var scrollerDelay:Number = 150;
var scrollBarStop:Number = scrollBar.scroller._width + 49;
var reflectionBackgroundColour:Number = 0x000000;
var reflectionBlurX:Number = 0;
var reflectionBlurY:Number = 10;
var reflectionQuality:Number = 3;
var reflectionSpace:Number = 0;
var reflectionAlpha:Number = 100;
var reflectionRotation:Number = 90;
var reflectionFocalPointRatio:Number = 0.3;
var reflectionFillType:String = "linear";
var reflectionSpreadMethod:String = "pad";
var reflectionInterpolationMethod:String = "RGB";
var unknownArtist:String = "Unknown Info";
var unknownAlbum:String = "Unknown Info";
var infostruc:Array = [];
var reflectionColors:Array = [0x000000, 0x000000];
var reflectionAlphas:Array = [100, 10];
var reflectionRatios:Array = [210, 255];
var xmlData:XML = new XML();
// Edit by Paul, tieftaucha, Lunis Neko
// autoNextP defines whether or not the flash movie automatically cycles through all CD covers
// autoNextP = 1 for on, 0 for off.
//var autoNextP:Number = 0;
// How long in seconds autoNext will wait to move
//var autoNextTime:Number = 3
/*var autoDirect:Number = 1;
autoNext = setInterval(interNext,autoNextTime*1000);
function interNext():Void {
   if (autoDirect == 1) {
      next();
   } else if (autoDirect == 0) {
      previous();
   }
}*/
MovieClip.prototype.setSides = function(x1:Number, y1:Number, x2:Number, y2:Number, x3:Number, y3:Number, x4:Number, y4:Number):Void  {
   this.px1 = x1;
   this.py1 = y1;
   this.px2 = x2;
   this.py2 = y2;
   this.px3 = x3;
   this.py3 = y3;
   this.px4 = x4;
   this.py4 = y4;
};
MovieClip.prototype.DistortImage = function(ptexture, vseg:Number, hseg:Number) {
   if (ptexture instanceof BitmapData) {
      this.texture = ptexture;
   } else if (ptexture instanceof MovieClip) {
      this.texture = new BitmapData(ptexture._width, ptexture._height);
      this.texture.draw(ptexture);
   }
   this._w = this.texture.width;
   this._h = this.texture.height;
   this._aMcs = [];
   this._p = [];
   this._tri = [];
   this.init();
};
MovieClip.prototype.setTransform = function(x0:Number, y0:Number, x1:Number, y1:Number, x2:Number, y2:Number, x3:Number, y3:Number):Void  {
   this.dx30 = x3 - x0;
   this.dy30 = y3 - y0;
   this.dx21 = x2 - x1;
   this.dy21 = y2 - y1;
   for (var l in this._p) {
      this.point = this._p[l];
      var gx = (this.point.x - this._xMin) / this._w;
      var gy = (this.point.y - this._yMin) / this._h;
      var bx = x0 + gy * (this.dx30);
      var by = y0 + gy * (this.dy30);
      this.point.sx = bx + gx * ((x1 + gy * (this.dx21)) - bx);
      this.point.sy = by + gx * ((y1 + gy * (this.dy21)) - by);
   }
   this.render();
};
MovieClip.prototype.init = function(Void):Void  {
   this._p = [];
   this._tri = [];
   this.w2 = this._w / 2;
   this.h2 = this._h / 2;
   this._xMin = this._yMin = 0;
   this._xMax = this._w;
   this._yMax = this._h;
   this._hsLen = this._w / 2;
   this._vsLen = this._h / 2;
   for (ix = 0; ix < 3; ix++) {
      for (iy = 0; iy < 3; iy++) {
         x = ix * this._hsLen;
         y = iy * this._vsLen;
         this._p.push({x:x, y:y, sx:x, sy:y});
      }
   }
   for (ix = 0; ix < 2; ix++) {
      for (iy = 0; iy < 2; iy++) {
         this.p0 = this._p[iy + ix * 3];
         this.p1 = this._p[iy + ix * 3 + 1];
         this.p2 = this._p[iy + (ix + 1) * 3];
         this.addTriangle(this.p0,this.p1,this.p2);
         this.p0 = this._p[iy + (ix + 1) * 3 + 1];
         this.p1 = this._p[iy + (ix + 1) * 3];
         this.p2 = this._p[iy + ix * 3 + 1];
         this.addTriangle(this.p0,this.p1,this.p2);
      }
   }
   this.render();
};
MovieClip.prototype.addTriangle = function(p0:Object, p1:Object, p2:Object):Void  {
   this.tMat = {};
   this.u0 = p0.x;
   this.v0 = p0.y;
   this.u1 = p1.x;
   this.v1 = p1.y;
   this.u2 = p2.x;
   this.v2 = p2.y;
   this.tMat.tx = -this.v0 * (this._w / (this.v1 - this.v0));
   this.tMat.ty = -this.u0 * (this._h / (this.u2 - this.u0));
   this.tMat.a = this.tMat.d = 0;
   this.tMat.b = this._h / (this.u2 - this.u0);
   this.tMat.c = this._w / (this.v1 - this.v0);
   this._tri.push([p0, p1, p2, this.tMat]);
};
MovieClip.prototype.render = function(Void):Void  {
   this.clear();
   this.ih = 1 / this._h;
   this.iw = 1 / this._w;
   this.tM = this.sM = {};
   for (var l in this._tri) {
      a = this._tri[l];
      this.p0 = a[0];
      this.p1 = a[1];
      this.p2 = a[2];
      this.tM = a[3];
      this.sM.a = (this.p1.sx - (this.x0 = this.p0.sx)) * this.iw;
      this.sM.b = (this.p1.sy - (this.y0 = this.p0.sy)) * this.iw;
      this.sM.c = (this.p2.sx - this.x0) * this.ih;
      this.sM.d = (this.p2.sy - this.y0) * this.ih;
      this.sM.tx = this.x0;
      this.sM.ty = this.y0;
      this.sM = concat(this.sM, this.tM);
      this.beginBitmapFill(this.texture,this.sM,false,false);
      this.moveTo(this.x0,this.y0);
      this.lineTo(this.p1.sx,this.p1.sy);
      this.lineTo(this.p2.sx,this.p2.sy);
      this.endFill();
   }
};
function init(Void):Void {
   myMO = {};
   myKO = {};
   Mouse.addListener(myMO);
   Key.addListener(myKO);
   for (var i in infostruc) {
      loader.clear();
      loader.gradient_mc.removeMovieClip();
      loader.attachMovie("default","art",1);
      loader._width = frontCDWidth;
      loader._height = frontCDHeight;
      this["_bmd" + i] = new BitmapData(loader._width, loader._height);
      this["_ref" + i] = new BitmapData(loader._width, loader._height);
      this["_bmd" + i].draw(loader);
      var mc:MovieClip = loader.createEmptyMovieClip("gradient_mc", loader.getNextHighestDepth());
      matrix = new Matrix();
      matrix.createGradientBox(loader._width,loader._height,reflectionRotation / 180 * Math.PI,0,0);
      mc.beginGradientFill(reflectionFillType,reflectionColors,reflectionAlphas,reflectionRatios,matrix,reflectionSpreadMethod,reflectionInterpolationMethod,reflectionFocalPointRatio);
      mc.moveTo(0,0);
      mc.lineTo(0,loader._height);
      mc.lineTo(loader._width,loader._height);
      mc.lineTo(loader._width,0);
      mc.lineTo(0,0);
      mc.endFill();
      loader.art._alpha = reflectionAlpha;
      loader.beginFill(reflectionBackgroundColour);
      loader.moveTo(0,0);
      loader.lineTo(0,loader._height);
      loader.lineTo(loader._width,loader._height);
      loader.lineTo(loader._width,0);
      loader.lineTo(0,0);
      loader.endFill();
      this["_ref" + i].draw(loader);
   }
   // Edit by Matth, Alhadef
   // "The Elevator Door 2"
   for (var i :Number; i <= infostruc.length;i++){
      var cArt:MovieClip = this.createEmptyMovieClip("art" + this.getNextHighestDepth(), this.getNextHighestDepth());
      var rArt:MovieClip = this.createEmptyMovieClip("reflection" + (this.getNextHighestDepth() - 1), this.getNextHighestDepth());
      rArt.id = cArt.id = rArt.cid = cArt.cid = Number(i) + 1;
      cArt.DistortImage(this["_bmd" + cArt.id]);
      controlTheObject(cArt);
      rArt.DistortImage(this["_ref" + cArt.id]);
      controlTheObject(rArt);
      var tmpFilter:BlurFilter = new BlurFilter(reflectionBlurX, reflectionBlurY, reflectionQuality);
      rArt.filterArray = [];
      rArt.filterArray.push(tmpFilter);
      rArt.filters = rArt.filterArray;
   }
   myMO.onMouseWheel = function(delta:Number):Void  {
      if (delta > 0) {
         next();
      } else if (delta <= 0) {
         previous();
      }
   };
   myKO.onKeyDown = function():Void  {
      if (Selection.getFocus() != "_level0.goto") {
         if (Key.isDown(Key.RIGHT)) {
            next();
         } else if (Key.isDown(Key.LEFT)) {
            previous();
         }
      }
   };
   scrollBar.scroller.onPress = function():Void  {
      dist = this._parent._xmouse - this._x;
      this.onMouseMove = function():Void  {
         tmp = 1 + Math.ceil(((this._parent._xmouse - dist) - scrollBarStart) / (scrollBar._width - scrollBarStop) * (infostruc.length - 1));
         if (tmp > infostruc.length) {
            tmp = infostruc.length;
         }
         if (tmp < 1) {
            tmp = 1;
         }
         current = tmp;
         updateInfo();
      };
   };
   scrollBar.scroller.onRelease = scrollBar.scroller.onReleaseOutside = function ():Void {
      stopDrag();
      delete this.onMouseMove;
   };
   scrollBar.left.onPress = function():Void  {
      previous();
      shifter = setInterval(previous, scrollerDelay);
   };
   scrollBar.right.onPress = function():Void  {
      next();
      shifter = setInterval(next, scrollerDelay);
   };
   scrollBar.onMouseUp = function():Void  {
      clearInterval(shifter);
   };
   scrollBar.onMouseDown = function():Void  {
      if (this.hitTest(_xmouse, _ymouse, true) && !this.left.hitTest(_xmouse, _ymouse, true) && !this.right.hitTest(_xmouse, _ymouse, true)) {
         if (this._xmouse < this.scroller._x) {
            previous();
            shifter = setInterval(previous, clickDelay);
         }
         if (this._xmouse > this.scroller._x + this.scroller._width) {
            next();
            shifter = setInterval(next, clickDelay);
         }
      }
   };
   goto.onChanged = function():Void  {
      if (!isNaN(Number(this.text) + 1)) {
         this.text = Math.round(Number(this.text));
         if (this.text > infostruc.length) {
            this.text = infostruc.length;
         }
         if (this.text < 1) {
            this.text = 1;
         }
         current = this.text;
      } else {
         this.text = current;
      }
      updateInfo();
   };
   distance = Number(i);
   mask.removeMovieClip();
   loader.removeMovieClip();
   scrollBar.swapDepths(1101);
   loadNext();
   updateInfo();
}
function concat(m1, m2):Object {
   var mat:Object = {};
   mat.a = m1.c * m2.b;
   mat.b = m1.d * m2.b;
   mat.c = m1.a * m2.c;
   mat.d = m1.b * m2.c;
   mat.tx = m1.a * m2.tx + m1.c * m2.ty + m1.tx;
   mat.ty = m1.b * m2.tx + m1.d * m2.ty + m1.ty;
   return mat;
}
function updateInfo():Void {
   goto.text = current;
   img_info.author = infostruc[current - 1].auth;
   img_info.album = infostruc[current - 1].album;

   //Version 2 Addition
   img_info.artistLink.enabled = true;
   if (infostruc[current - 1].authLink == undefined) {
      img_info.authLink.enabled = false;
   } else {
      if (infostruc[current - 1].authLink == "undefined") {
         img_info.authLink.enabled = false;
      } else {
         img_info.artistLink.onPress = function() {
            getURL(infostruc[current - 1].authLink, "_blank");
         };
      }
   }
   img_info.albumLink.enabled = true;
   if (infostruc[current - 1].albumLink == undefined) {
      img_info.albumLink.enabled = false;
   } else {
      if (infostruc[current - 1].albumLink == "undefined") {
         img_info.albumLink.enabled = false;
      } else {
         img_info.albumLink.onPress = function() {
            getURL(infostruc[current - 1].albumLink, "_blank");
         };
      }
   }
   // 
   scrollBar.scroller._x = scrollBarStart + ((current - 1) / (infostruc.length - 1) * (scrollBar._width - scrollBarStop));
}
function validateOk(target:MovieClip):Boolean {
   return Math.abs(Math.min(Math.max((target._x - target.x) / albumEase, -maxSlide), maxSlide)) == maxSlide;
}
function controlTheObject(mc):Void {
   if (mc._name.indexOf("reflection") == -1) {
      mc.onPress = function():Void  {
         if (getTimer() - this.pressTime <= doubleClickRegister && this.pressTime) {
         }
         this.pressTime = getTimer();
         // Edit by Zack Gildersleeve
         // Make front album clickable
         // opens albumLink in _blank
         if (current == this.cid + 1) {
            getURL(infostruc[current - 1].albumLink, "_blank")
         }
         current = this.cid + 1;
         updateInfo();
      };
   }
   mc.onEnterFrame = function():Void  {
      if (Math.abs(this._x - this.x) > 1) {
         if (this._name.indexOf("reflection") == -1) {
            this._y = centerY;
            if (this._x >= centerX + centerDistance) {
               this.swapDepths(Stage.width - this._x);
               this.setSides(-(shelveCDWidth / 2),-(shelveCDHeight / 2) + ((Math.sin(angle * Math.PI / 180) * frontCDWidth)),-(shelveCDWidth / 2) + shelveCDWidth,-(shelveCDHeight / 2),-(shelveCDWidth / 2) + shelveCDWidth,shelveCDHeight / 2,-(shelveCDWidth / 2),(shelveCDHeight / 2) - ((Math.sin(angle * Math.PI / 180) * frontCDWidth)));
            } else if (this._x <= centerX - centerDistance) {
               this.swapDepths(this._x);
               this.setSides(-(shelveCDWidth / 2),-(shelveCDHeight / 2),-(shelveCDWidth / 2) + shelveCDWidth,-(shelveCDHeight / 2) + (Math.sin(angle * Math.PI / 180) * frontCDWidth),-(shelveCDWidth / 2) + shelveCDWidth,(shelveCDHeight / 2) - (Math.sin(angle * Math.PI / 180) * frontCDWidth),-(shelveCDWidth / 2),shelveCDHeight / 2);
            } else if (this._x > centerX - centerDistance && Math.floor(this._x) < centerX && !validateOk(this) && angle - ((this._x - (centerX - centerDistance)) / centerDistance * angle) > autoJump) {
               this.swapDepths(1002);
               var sum:Number = shelveCDWidth + ((this._x - (centerX - centerDistance)) / centerDistance * (frontCDWidth - shelveCDWidth));
               var sum2:Number = angle - ((this._x - (centerX - centerDistance)) / centerDistance * angle);
               var sum3:Number = shelveCDHeight + ((this._x - (centerX - centerDistance)) / centerDistance * (frontCDHeight - shelveCDHeight));
               this.setSides(-(sum / 2),-(sum3 / 2),-(sum / 2) + sum,-(sum3 / 2) + ((Math.sin(sum2 * Math.PI / 180) * frontCDWidth)),-(sum / 2) + sum,(sum3 / 2) - ((Math.sin(sum2 * Math.PI / 180) * frontCDWidth)),-(sum / 2),sum3 / 2);
            } else if (this._x < centerX + centerDistance && Math.ceil(this._x) > centerX && !validateOk(this) && angle - (((centerX + centerDistance) - this._x) / centerDistance * angle) > autoJump) {
               this.swapDepths(1003);
               var sum:Number = shelveCDWidth + (((centerX + centerDistance) - this._x) / centerDistance * (frontCDWidth - shelveCDWidth));
               var sum2:Number = angle - (((centerX + centerDistance) - this._x) / centerDistance * angle);
               var sum3:Number = shelveCDHeight + (((centerX + centerDistance) - this._x) / centerDistance * (frontCDHeight - shelveCDHeight));
               this.setSides(-(sum / 2),-(sum3 / 2) + ((Math.sin(sum2 * Math.PI / 180) * frontCDWidth)),-(sum / 2) + sum,-(sum3 / 2),-(sum / 2) + sum,sum3 / 2,-(sum / 2),(sum3 / 2) - ((Math.sin(sum2 * Math.PI / 180) * frontCDWidth)));
            } else if (!validateOk(this)) {
               this.swapDepths(1004);
               this.setSides(-(frontCDWidth / 2),-(frontCDHeight / 2),-(frontCDWidth / 2) + frontCDWidth,-(frontCDHeight / 2),-(frontCDWidth / 2) + frontCDWidth,frontCDHeight / 2,-(frontCDWidth / 2),frontCDHeight / 2);
            }
         } else {
            this._yscale = -100;
            if (this._x >= centerX + centerDistance) {
               this._y = centerY + shelveCDHeight + reflectionSpace;
               this.swapDepths((Stage.width - this._x) - 333);
               this.setSides(-(shelveCDWidth / 2),-(shelveCDHeight / 2) + (Math.sin(angle * Math.PI / 180) * frontCDWidth),-(shelveCDWidth / 2) + shelveCDWidth,-(shelveCDHeight / 2),-(shelveCDWidth / 2) + shelveCDWidth,shelveCDHeight / 2,-(shelveCDWidth / 2),(shelveCDHeight / 2) + ((Math.sin(angle * Math.PI / 180) * frontCDWidth)));
            } else if (this._x <= centerX - centerDistance) {
               this._y = centerY + shelveCDHeight + reflectionSpace;
               this.swapDepths(this._x - 333);
               this.setSides(-(shelveCDWidth / 2),-(shelveCDHeight / 2),-(shelveCDWidth / 2) + shelveCDWidth,-(shelveCDHeight / 2) + ((Math.sin(angle * Math.PI / 180) * frontCDWidth)),-(shelveCDWidth / 2) + shelveCDWidth,(shelveCDHeight / 2) + (Math.sin(angle * Math.PI / 180) * frontCDWidth),-(shelveCDWidth / 2),shelveCDHeight / 2);
            } else if (this._x > centerX - centerDistance && this._x < centerX && !validateOk(this)) {
               this.swapDepths(999);
               var sum:Number = shelveCDWidth + ((this._x - (centerX - centerDistance)) / centerDistance * (frontCDWidth - shelveCDWidth));
               var sum2:Number = angle - ((this._x - (centerX - centerDistance)) / centerDistance * angle);
               var sum3:Number = shelveCDHeight + ((this._x - (centerX - centerDistance)) / centerDistance * (frontCDHeight - shelveCDHeight));
               this._y = centerY + sum3 + reflectionSpace;
               this.setSides(-(sum / 2),-(sum3 / 2),-(sum / 2) + sum,-(sum3 / 2) + ((Math.sin(sum2 * Math.PI / 180) * frontCDWidth)),-(sum / 2) + sum,(sum3 / 2) + ((Math.sin(sum2 * Math.PI / 180) * frontCDWidth)),-(sum / 2),sum3 / 2);
            } else if (this._x < centerX + centerDistance && this._x > centerX && !validateOk(this)) {
               this.swapDepths(998);
               var sum:Number = shelveCDWidth + (((centerX + centerDistance) - this._x) / centerDistance * (frontCDWidth - shelveCDWidth));
               var sum2:Number = angle - (((centerX + centerDistance) - this._x) / centerDistance * angle);
               var sum3:Number = shelveCDHeight + (((centerX + centerDistance) - this._x) / centerDistance * (frontCDHeight - shelveCDHeight));
               this.setSides(-(sum / 2),-(sum3 / 2) + ((Math.sin(sum2 * Math.PI / 180) * frontCDWidth)),-(sum / 2) + sum,-(sum3 / 2),-(sum / 2) + sum,sum3 / 2,-(sum / 2),(sum3 / 2) + ((Math.sin(sum2 * Math.PI / 180) * frontCDWidth)));
               this._y = centerY + sum3 + reflectionSpace;
            } else if (!validateOk(this)) {
               this.swapDepths(995);
               this._y = centerY + frontCDHeight + reflectionSpace;
               this.setSides(-(frontCDWidth / 2),-(frontCDHeight / 2),-(frontCDWidth / 2) + frontCDWidth,-(frontCDHeight / 2),-(frontCDWidth / 2) + frontCDWidth,frontCDHeight / 2,-(frontCDWidth / 2),frontCDHeight / 2);
            }
         }
      }
      if (infostruc[this.cid].loaded && !this.loadedImage) {
         this.DistortImage(this._name.indexOf("reflection") > -1 ? this._parent["_ref" + this.cid] : this._parent["_bmd" + this.cid]);
         this.loadedImage = true;
      }
      if (this._x < deleteMinDistance && this._parent["_ref" + (this.cid + distance)]) {
         this.cid += distance;
         this._x = deleteMaxDistance;
         controlTheObject(this);
         this.loadedImage = infostruc[this.cid].loaded;
         this.DistortImage(this._name.indexOf("reflection") > -1 ? this._parent["_ref" + this.cid] : this._parent["_bmd" + this.cid]);
      }
      if (this._x > deleteMaxDistance && this._parent["_ref" + (this.cid - distance)]) {
         this.cid -= distance;
         this._x = deleteMinDistance;
         controlTheObject(this);
         this.loadedImage = infostruc[this.cid].loaded;
         this.DistortImage(this._name.indexOf("reflection") > -1 ? this._parent["_ref" + this.cid] : this._parent["_bmd" + this.cid]);
      }
      if (this.cid + 1 > current) {
         this.x = (centerX + ((this.cid + 1 - current) * shelveCDSpacing)) + centerDistance;
      } else if (this.cid + 1 < current) {
         this.x = (centerX + ((this.cid + 1 - current) * shelveCDSpacing)) - centerDistance;
      } else {
         this.x = centerX + ((this.cid + 1 - current) * shelveCDSpacing);
      }
      this._x -= Math.min(Math.max((this._x - this.x) / albumEase, -maxSlide), maxSlide);
      if (this._x < fadeDist) {
         this._alpha = (this._x / fadeDist * 100);
      } else if (this._x > fadePoint - fadeDist) {
         this._alpha = ((fadePoint - this._x) / fadeDist * 100);
      } else {
         this._alpha = 100;
      }
      // Edit by Cristophe Krebser, helene, Aries, Mike
      // Idle the CPU a bit, makes this script more
      // CPU friendly
      if (this.counter == undefined) {
         this.counter = 0;
      }
      if (this.x == undefined || Math.abs(this._x-this.x)>1 || !infostruc[this.cid].loaded || (this.counter++ < 5)) {
         this.setTransform(this.px1, this.py1, this.px2, this.py2, this.px3, this.py3, this.px4, this.py4);
      }
   };
}
// Edit by Paul, tieftaucha, Lunis Neko
function next():Void {
   if (current < infostruc.length) {
      current += 1;
   }
   if (current eq infostruc.length) {
      // Set our autodirect switch to go back now.
      autoDirect = 0;
   }
   updateInfo();
}
function previous():Void {
   if (current > 1) {
      current -= 1;
   } 
   if (current == 1) {
      // Set our autodirect switch to go forward now
      autoDirect = 1;
   }
   updateInfo();
}
function displayAlternArt(art, width:Number, height:Number):Void {
   artDisplay.attachBitmap(art,1);
   artDisplay._width = width;
   artDisplay._height = height;
}
function loadNext():Void {
   if (!loadedAll) {
      var num:Number = current - 1;
      if (infostruc[current - 1].loaded) {
         var num:Number = current - Math.floor(distance / 2) - 1 >= 0 ? current - Math.floor(distance / 2) - 1 : 0;
         while (infostruc[num].loaded && num < infostruc.length) {
            num++;
         }
         if (num >= infostruc.length) {
            var num:Number = current - 1;
            while (infostruc[num].loaded && num > 0) {
               num--;
            }
            if (num <= 0) {
               loadedAll = true;
            }
         }
      }
      var newLoad:MovieClip = this.createEmptyMovieClip("artLoad" + num, this.getNextHighestDepth());
      newLoad.createEmptyMovieClip("art",newLoad.getNextHighestDepth());
      newLoad._alpha = 0;
      var mc:Object = {};
      mc.number = num;
      var artLoader:MovieClipLoader = new MovieClipLoader();
      artLoader.addListener(mc);
      artLoader.loadClip("./" + infostruc[num].art,newLoad.art);
      mc.onLoadError = function() {
         infostruc[this.number].loaded = true;
         loadNext();
      };
      mc.onLoadInit = function(target:MovieClip) {
         target._parent._width = frontCDWidth;
         target._parent._height = frontCDHeight;
         root["_bmd" + this.number] = new BitmapData(target._width, target._height);
         root["_ref" + this.number] = new BitmapData(target._width, target._height);
         root["_bmd" + this.number].draw(target);
         var mc:MovieClip = target._parent.createEmptyMovieClip("gradient_mc", target._parent.getNextHighestDepth());
         matrix = new Matrix();
         matrix.createGradientBox(target._width,target._height,reflectionRotation / 180 * Math.PI,0,0);
         mc.beginGradientFill(reflectionFillType,reflectionColors,reflectionAlphas,reflectionRatios,matrix,reflectionSpreadMethod,reflectionInterpolationMethod,reflectionFocalPointRatio);
         mc.moveTo(0,0);
         mc.lineTo(0,target._height);
         mc.lineTo(target._width,target._height);
         mc.lineTo(target._width,0);
         mc.lineTo(0,0);
         mc.endFill();
         target._alpha = 50;
         target._parent.beginFill(reflectionBackgroundColour);
         target._parent.moveTo(0,0);
         target._parent.lineTo(0,target._height);
         target._parent.lineTo(target._width,target._height);
         target._parent.lineTo(target._width,0);
         target._parent.lineTo(0,0);
         target._parent.endFill();
         root["_ref" + this.number].draw(target._parent);
         infostruc[this.number].loaded = true;
         target._parent.removeMovieClip();
         updateInfo();
         loadNext();
      };
   }
}
xmlData.onLoad = function(success:Boolean):Void  {
   if (success) {
      for (var i:Number = -1; this.childNodes[0].childNodes[++i]; ) {
         var cNode:XMLNode = this.firstChild.childNodes;
         var val1:String = cNode[i].attributes.foto
         var val2:String = cNode[i].attributes.nombre
         var val3:String = cNode[i].attributes.lugar
         var val4:String = cNode[i].attributes.linkNombre
         var val5:String = cNode[i].attributes.linkLugar
         infostruc.push({art:cNode[0].childNodes[0].nodeValue, info:val1, auth:val2, album:val3, authLink:val4, albumLink:val5, loaded:false});
         trace('val'+' '+val1);
      }
      loadStat = "";
      init();
   } else {
      loadStat = "Unable to load XML Data";
   }
};
xmlData.ignoreWhite = true;
xmlData.load("./test.xml");
this.createEmptyMovieClip("loader",this.getNextHighestDepth());
loader._visible = false;
mask._alpha = 0;
scrollBar.scroller._y = 0;
img_info.swapDepths(2000);


por lo que puedo ver, la imagen la estaba yendo a buscar desde aqui:

Código ActionScript :

var newLoad:MovieClip = this.createEmptyMovieClip("artLoad" + num, this.getNextHighestDepth()); 
      newLoad.createEmptyMovieClip("art",newLoad.getNextHighestDepth()); 
      newLoad._alpha = 0; 
      var mc:Object = {}; 
      mc.number = num; 
      var artLoader:MovieClipLoader = new MovieClipLoader(); 
      artLoader.addListener(mc); 
      artLoader.loadClip("./" + infostruc[num].art,newLoad.art); 
      mc.onLoadError = function() { 
         infostruc[this.number].loaded = true; 
         loadNext(); 
      };


pero al modificar la linea

Código :

[as]artLoader.loadClip("./" + infostruc[num].art,newLoad.art); [/as]
por algo asi:

Código ActionScript :

artLoader.loadClip(cNode[i].attributes.foto,newLoad.art); 
no encuentra ninguna imagen;
pero al editarlo asi:

Código :

[as]artLoader.loadClip("fad0340338b40515f7efd2bc848e131efoto2.jpg",newLoad.art); [/as]
carga ese jpg y lo aplica a todos los movieclips;

muchas gracias por su ayuda, de antemano;
saludos
sebas

Por flashodelico

80 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Nov 2010 03:28 pm
No lei las 580 líneas de código que pusiste, pero aparentemente la rtuta del XML no es válida. Trázala

trace(cNode[i].attributes.foto)

Y mira si te tira algún dato, luego revisa la rutina de parseo del XML

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 24 Nov 2010 05:29 pm
jorge, no pretendia q nadie leyera todo,
pero por las dudas, lo postee, en caso de que
alguien quisiera hacerlo, o a modo de apoyo para ver
de donde viene cada funcion, llamado, etc.

el xml lo esta leyendo bien, porque los datos que van
dentro de los dos campos de texto dinamico que tengo,
llegan bien a destino;
lo unico que no veo es la foto que tiene que cargarse;
por eso separe esa porcion de codigo, donde hacen el llamado
a la ruta donde se encuentra la imagen;
el tema es que ahora quiero llamar a la imagen desde el xml
generado por la base de datos, cuyo nodo se llama "foto";

lo que puedo intuir es que estoy creando el contenedor y llamando a la imagen
antes de que la funcion que hace referencia al momento en el que el xml se cargue
parsee el xml y asigne cada nodo a una variable;
probe de invertir estas dos acciones, pero no obtuve ningun resultado, tampoco;

si pudieses guiarme un poco con este tema, como siempre, te lo agradeceria mucho;
pero entiendo que el codigo es muy largo;

saludos,
sebas.

Por flashodelico

80 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Nov 2010 05:31 pm
Pon el trace que te dije y dime que imprime

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 24 Nov 2010 05:39 pm
cuando hago ese trace, me muestra los nombres de los jpg segun los creo la base de datos;
pero no los carga

Por flashodelico

80 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Nov 2010 05:44 pm
Entonces es un tema de rutas. ¿El swf está en la misma carpeta que las imágenes? Si no lo está, tienes que agregar el path para que las encuentre

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 24 Nov 2010 05:47 pm
si, estan todos los archivos juntos

no crees q pueda ser lo que te comente recien, sobre el orden
en el que va leyendo el AS?
cuando carga la imagen, una vez creado el contenedor, todavia
no ha sucedido la funcion que parsea el xml y destina cada nodo
a una variable (foto, nombre, lugar)
nombre y lugar, estan en el escenario, como campos de texto dinamicos
y se cargan perfectamente.

Por flashodelico

80 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Nov 2010 05:50 pm
La interface se genera a partir de que se ha parseado el XML (concretamente el onLoad), sino lo tienes así, entonces estamos errando. Igual es fácil, traza el contenedor a ver si existe:

trace(artLoader)

Si el contenedor y el string que representa el archivo están, entonces verifica rutas

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 24 Nov 2010 06:16 pm
si lo trazo dentro de la funcion loadNext(), lo encuentra;
pero si lo trazo despues del xmlData.onLoad, no, me tira un "undefined"
creo que voy a tener que meter la funcion loadNext() dentro de xmlData.onLoad, cierto?

pero antes de postear mi duda aqui, intente hacer algo similar, pero sin exito;
podes aconsejarme como seguir, por favor?

Por flashodelico

80 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Nov 2010 06:21 pm
Lo tienes que trazar dentro del for ... in, mira que usa el índice[i]

¿Traza el contenedor (mi segundo post) y la ruta (mi primer post)? (el string y el loader)

Tip: primero se descartan las hipótesis mas fáciles

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 24 Nov 2010 07:00 pm
al trazar cNode[i].attributes.foto, encuentra la foto;
pero al trazar artLoader, me da "undefined";
los dos trace los hice dentro del for...

dentro del bucle, yo estaba trazando la variable
a la que le asigne a cNode[i].attributes.foto, y
tambien la encuentra;

Por flashodelico

80 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Nov 2010 07:05 pm
Bien, lo siguiente es ver en que momento lo quieres cargar. Si es en el mismo loop donde trazas el nombre del archivo, no tienes mas que crear el MovieClipLoader en ese momento para que realmente exista ... si lo quieres hacer después, tienes que guardar la imagen en algún array que puedas usar a posteriori, ya que la expresión que etienes allí para la foto tiene que ver con la rutina de parseo local

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 24 Nov 2010 07:24 pm
bien, eso me llevara un tiempo...
estoy intentando cambiar el orden en el que se van ejecutando
las funciones, pero no obtengo el resultado deseado;

siento que estoy a punto de lograrlo, pero a la vez estoy medio perdido!

para no tener que modificar tanto el codigo original, cual de las dos opciones
me recomendarias utilizar?

Por flashodelico

80 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Nov 2010 07:28 pm
Eso depende de la mecánica de la galería, cargar todos los thumbs en el mismo loop del parseo es lo mas simple

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 24 Nov 2010 07:39 pm
perfecto, jorge;
intentare llevarlo por ese camino;
tendria que, primero parsear el xml, y dentro del bucle llevar a cabo las funciones de carga, no?
en la teoria, lo veo claro, pero me realmente me cuesta volcarlo en el panel de acciones!
voy a seguir buscando el resultado deseado!
si se te ocurre algun otro tip para guiarme en esto, te lo agredeceria... sino, tus posteos han sido de gran ayuda, y te informare sobre mi resultado;
muchas gracias!
sebas.

Por flashodelico

80 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Dic 2010 09:27 pm
hola jorge, como estas?
finalmente hace un par de dias resolvi el tema de la carga de las imagenes!
no tuve que modificar tanto el codigo, sino que descubri que la variable art
era la que cargaba los jpg;
asi que cuando parseo el xml, el nodo correspondiente a las imagenes lo meto en dicha variableç
y funciona de maravillas!
aqui dejo el codigo del parseo, segun me quedo ahora:

Código ActionScript :

xmlData.onLoad = function(success:Boolean):Void  {
   if (success) {
      for (var i:Number = -1; this.childNodes[0].childNodes[++i]; ) {
         var cNode:XMLNode = this.childNodes[0].childNodes[i].childNodes;
         var val2:String = cNode[1].childNodes[0].nodeValue ? unescape(cNode[1].childNodes[0].nodeValue) : unknownArtist;
         var val3:String = cNode[2].childNodes[0].nodeValue ? unescape(cNode[2].childNodes[0].nodeValue) : unknownAlbum;
         var val4:String = cNode[3].childNodes[0].nodeValue ? unescape(cNode[3].childNodes[0].nodeValue) : noLink;
         var val5:String = cNode[4].childNodes[0].nodeValue ? unescape(cNode[4].childNodes[0].nodeValue) : noLink;
         infostruc.push({art:cNode[0].childNodes[0].nodeValue, info:val1, auth:val2, album:val3, authLink:val4, albumLink:val5, loaded:false});
      }
      loadStat = "";
      init();
   } else {
      loadStat = "Unable to load XML Data";
   }
};


asi q felizmente podemos dar este post por solucionado!
ha sido realmente muy enriquecedor, asi que muchas gracias!
saludos
sebas.

Por flashodelico

80 de clabLevel



 

firefox

 

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