zirag
Erfahrenes Mitglied
Hallo Leute, ich bin am Ende mit meinem Wissen.
Ich bin grad dabei, eine XML Gallery zu schreiben. Nunja eigentlich klappt auch alles, aber wenn ich bei "pBreite" einen anderen Wert als 100 eingebe, dann werden die geladenen Bilder nicht richtig skaliert und falsch positioniert Ich kann es mir nicht erklären, weil es eben bei dem Wert 100 klappt.
Hier mal der Code:
Ich hoffe, irgendwer kann sich das ganze erklären
Der Debugger gibt mir auch die richtigen Werde aus
es geht hauptsächlich um diesen Teil:
mfg und vielen Dank schonmal
Ich bin grad dabei, eine XML Gallery zu schreiben. Nunja eigentlich klappt auch alles, aber wenn ich bei "pBreite" einen anderen Wert als 100 eingebe, dann werden die geladenen Bilder nicht richtig skaliert und falsch positioniert Ich kann es mir nicht erklären, weil es eben bei dem Wert 100 klappt.
Hier mal der Code:
PHP:
// Variables
var pBreite = 100;
var spacing = 10
var xAnz = Math.floor(Stage.width / (pBreite+spacing));
var yAnz = Math.floor(Stage.height / (pBreite+spacing));
// Import Classes
import mx.transitions.Tween;
import mx.transitions.easing.*;
import flash.display.BitmapData;
//================================
//load the XML File
var xml:XML = new XML();
xml.ignoreWhite = true;
xml.load("images.xml");
//================================
// Setup MovieClipLoader
var mcl:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
mcl.addListener(listener);
// when loading is done
xml.onLoad = function(success)
{
if(success)
{
var nodes:Array = xml.firstChild.childNodes;
var anzImgs:Number = nodes.length;
for( var i:Number = 0; i<anzImgs ; i++)
{
_root.attachMovie("pic","pic"+i,_root.getNextHighestDepth());
_root["pic"+i].createEmptyMovieClip("inMc",_root["pic"+i].getNextHighestDepth());
_root["pic"+i]._width = pBreite;
_root["pic"+i]._height = pBreite;
mcl.loadClip("images/"+nodes[i].attributes.name,_root["pic"+i].inMc);
}
}
}
xcount = 0;
ycount = 0;
listener.onLoadInit = function(target:MovieClip)
{
if(xcount == xAnz)
{
xcount = 0;
ycount++
}
target._parent._alpha = 50;
target.breite = target._width;
target.hoehe = target._height;
if(target.breite > target.hoehe)
{
target.scalFak = target.breite/pBreite;
target._width = target.breite/target.scalFak;
target._height = target.hoehe/target.scalFak;
target._y = pBreite/2-target._height/2
}else{
target.scalFak = target.hoehe/pBreite;
target._width = target.breite/target.scalFak;
target._height = target.hoehe/target.scalFak;
target._x = pBreite/2-target._width/2
}
target._parent._x = spacing+xcount * (pBreite+spacing);
target._parent._y = spacing+ycount * (pBreite+spacing);
trace(target._width+" "+target._height)
xcount++
target.onRollOver = function()
{
var tw:Tween = new Tween(target._parent,"_alpha",Elastic.easeOut,50,100,1,true);
}
target.onRollOut = function()
{
var tw:Tween = new Tween(target._parent,"_alpha",Elastic.easeOut,100,50,10,true);
}
}
Ich hoffe, irgendwer kann sich das ganze erklären
Der Debugger gibt mir auch die richtigen Werde aus
es geht hauptsächlich um diesen Teil:
PHP:
if(target.breite > target.hoehe)
{
target.scalFak = target.breite/pBreite;
target._width = target.breite/target.scalFak;
target._height = target.hoehe/target.scalFak;
target._y = pBreite/2-target._height/2
}else{
target.scalFak = target.hoehe/pBreite;
target._width = target.breite/target.scalFak;
target._height = target.hoehe/target.scalFak;
target._x = pBreite/2-target._width/2
}
mfg und vielen Dank schonmal