ich habe eine klasse geschrieben, welche ein bild laden und dieses dann in einer bestimmten größe darstellen soll. das funktioniert auch wunderbar wenn ich eine instanz davon erzeuge. wenn ich aber mehrere instanzen erzeuge funktioniert es leider überhaupt nicht mehr, und ich komme nicht dahinter warum?????
hier einmal meine klasse
PHP-Code:
//
class ImageWidget {
private var file:String;
//
private var container_mc:MovieClip;
private var load_mc:MovieClip;
private var bg_mc:MovieClip;
private var border_mc:MovieClip;
private var target_mc:MovieClip;
private var mcl:MovieClipLoader;
//
public var iconWidth:Number = 90;
public var iconHeight:Number = 90;
//
private var x:Number;
private var y:Number;
//constructor
public function ImageWidget (target:MovieClip, fileToLoad:String, xPos:Number, yPos:Number) {
target_mc = target;
file = fileToLoad;
//
x = xPos;
y = yPos;
//
init ();
}
//
private function init () {
container_mc = target_mc.createEmptyMovieClip("container", target_mc.getNextHighestDepth())
container_mc._x = x;
container_mc._y = y;
//
buildBackground ();
//
load_mc = container_mc.createEmptyMovieClip("load", container_mc.getNextHighestDepth())
//
buildBorder ();
buildMovieClipLoader ();
}
//
private function buildBackground () {
bg_mc = container_mc.createEmptyMovieClip("bg", container_mc.getNextHighestDepth())
bg_mc.beginFill (0xcccccc)
bg_mc.moveTo (0, 0);
bg_mc.lineTo (iconWidth, 0);
bg_mc.lineTo (iconWidth, iconHeight);
bg_mc.lineTo (0, iconHeight);
bg_mc.lineTo (0, 0);
bg_mc.endFill ();
}
//
private function buildBorder () {
border_mc = container_mc.createEmptyMovieClip("border", container_mc.getNextHighestDepth())
border_mc.lineStyle(0, 0x000000)
border_mc.lineTo(iconWidth,0)
border_mc.lineTo(iconWidth,iconHeight)
border_mc.lineTo(0,iconHeight)
border_mc.lineTo(0,0)
}
//
private function buildMovieClipLoader () {
mcl = new MovieClipLoader ();
mcl.addListener(this);
mcl.loadClip (file, load_mc)
}
//
public function onLoadStart (clip:MovieClip) {
trace ("load has started")
}
//
public function onLoadInit (clip:MovieClip) {
//
setDisplaySize (iconWidth, iconHeight)
}
//
public function onLoadProgress (clip:MovieClip, loadedBytes:Number, totalBytes:Number) {
var percent:Number = (loadedBytes/totalBytes)
bg_mc._width = iconWidth*percent
//trace (percent)
}
//
public function setDisplaySize (w:Number, h:Number):Void {
var scale:Number;
var tempW:Number = load_mc._width;
var tempH:Number = load_mc._height;
// trace (tempW)
var xScale:Number = w/tempW * 100;
var yScale:Number = h/tempH * 100;
//
if (xScale > yScale) {
scale = yScale
} else {
scale = xScale
}
load_mc._xscale = load_mc._yscale = scale;
// center the media clip
load_mc._x = container_mc._width/2 - load_mc._width/2;
load_mc._y = container_mc._height/2 - load_mc._height/2;
}
}
das ganze wird dann von der timeline folgendermaßen aufgerufen:
PHP-Code:
function mediaWidget () {
var node_arr = new Array ("media/RenateHattinger01.jpg", "media/RenateHattinger02.jpg")
var maxNum:Number = node_arr.length;
for (var i=0; i<maxNum; i++) {
var item = new ImageWidget (this, node_arr[i], i*100, 0);
}
}
mediaWidget ()
wenn das array "node_arr" nur aus einem element besteht funktioniert es einwandfrei .... sonst gehts drunter und drüber ....
kan mir da jemand bitte helfen?