Albus
%Europe/Berlin %733 %2007, 18:35
Hallo,
Ik ben bezig met een lader class die foto's kan inladen. Nu vroeg ik me af hoe ik in mijn document kan te weten komen wanneer in de lader class het laden compleet is.
Ik heb dit geprobeerd met volgende code maar dit werkt niet:
var lader:Lader = new Lader();
addChild(lader);
lader.laadBeelden(url,ellips,70,70);
lader.addEventListener(Event.COMPLETE,lader_comple et);
function lader_compleet(gebeurtenis:Event):void {
trace("ja");
}
lader class:
package {
import flash.display.Loader;
import flash.display.MovieClip;
import flash.events.*;
import flash.net.URLRequest;
public class Lader extends MovieClip {
private var _url:Array;
private var _object:Object;
private var _object_eindB:Number;
private var _object_eindL:Number;
private var _i:Number = 0;
private var _geladenData:Number;
private var _object_b:Number;
private var _object_l:Number;
private var _beeld:Array = [""];
//private var _breedte:Array = [""];
public function Lader() {
}
/*public function breedte(beeld:Number):Number {
return _breedte[beeld];
}*/
public function laadBeelden(url:Array,object:Object,object_eindB,o bject_eindL):void {
_url = url;
_object = object;
_object_eindB = object_eindB;
_object_eindL = object_eindL;
laden();
}
private function laden():void {
var lader:Loader = new Loader();
var urlAanvraag:URLRequest = new URLRequest();
urlAanvraag.url = _url[_i];
lader.load(urlAanvraag);
addChildAt(lader,0);
configureerLuisteraars(lader.contentLoaderInfo);
}
private function configureerLuisteraars(verzender:IEventDispatcher) :void {
verzender.addEventListener(IOErrorEvent.IO_ERROR,i oFout);
verzender.addEventListener(ProgressEvent.PROGRESS, voortgang);
verzender.addEventListener(Event.COMPLETE,compleet );
}
private function ioFout(gebeurtenis:IOErrorEvent):void {
}
private function voortgang(gebeurtenis:ProgressEvent):void {
_geladenData = gebeurtenis.target.bytesLoaded/gebeurtenis.target.bytesTotal;
if(_geladenData==1) {
_object_b = _object.width;
_object_l = _object.height;
} else {
_object.width = _object_b + Math.round((_geladenData * _object_eindB)/_url.length);
_object.height = _object_l + Math.round((_geladenData * _object_eindL)/_url.length);
}
}
private function compleet(gebeurtenis:Event):void {
_beeld[_i] = gebeurtenis.target.loader.content;
//_breedte[_i] = _beeld[_i].width;
if(_i!==_url.length-1) {
_i ++;
laden();
} else {
for(var j:Number=0;j<_url.length;j++) {
_beeld[j].x = (gebeurtenis.target.loader.width/2) - (_beeld[j].width/2);
_beeld[j].y = (gebeurtenis.target.loader.height/2) - (_beeld[j].height/2);
}
}
}
}
}
Ik ben bezig met een lader class die foto's kan inladen. Nu vroeg ik me af hoe ik in mijn document kan te weten komen wanneer in de lader class het laden compleet is.
Ik heb dit geprobeerd met volgende code maar dit werkt niet:
var lader:Lader = new Lader();
addChild(lader);
lader.laadBeelden(url,ellips,70,70);
lader.addEventListener(Event.COMPLETE,lader_comple et);
function lader_compleet(gebeurtenis:Event):void {
trace("ja");
}
lader class:
package {
import flash.display.Loader;
import flash.display.MovieClip;
import flash.events.*;
import flash.net.URLRequest;
public class Lader extends MovieClip {
private var _url:Array;
private var _object:Object;
private var _object_eindB:Number;
private var _object_eindL:Number;
private var _i:Number = 0;
private var _geladenData:Number;
private var _object_b:Number;
private var _object_l:Number;
private var _beeld:Array = [""];
//private var _breedte:Array = [""];
public function Lader() {
}
/*public function breedte(beeld:Number):Number {
return _breedte[beeld];
}*/
public function laadBeelden(url:Array,object:Object,object_eindB,o bject_eindL):void {
_url = url;
_object = object;
_object_eindB = object_eindB;
_object_eindL = object_eindL;
laden();
}
private function laden():void {
var lader:Loader = new Loader();
var urlAanvraag:URLRequest = new URLRequest();
urlAanvraag.url = _url[_i];
lader.load(urlAanvraag);
addChildAt(lader,0);
configureerLuisteraars(lader.contentLoaderInfo);
}
private function configureerLuisteraars(verzender:IEventDispatcher) :void {
verzender.addEventListener(IOErrorEvent.IO_ERROR,i oFout);
verzender.addEventListener(ProgressEvent.PROGRESS, voortgang);
verzender.addEventListener(Event.COMPLETE,compleet );
}
private function ioFout(gebeurtenis:IOErrorEvent):void {
}
private function voortgang(gebeurtenis:ProgressEvent):void {
_geladenData = gebeurtenis.target.bytesLoaded/gebeurtenis.target.bytesTotal;
if(_geladenData==1) {
_object_b = _object.width;
_object_l = _object.height;
} else {
_object.width = _object_b + Math.round((_geladenData * _object_eindB)/_url.length);
_object.height = _object_l + Math.round((_geladenData * _object_eindL)/_url.length);
}
}
private function compleet(gebeurtenis:Event):void {
_beeld[_i] = gebeurtenis.target.loader.content;
//_breedte[_i] = _beeld[_i].width;
if(_i!==_url.length-1) {
_i ++;
laden();
} else {
for(var j:Number=0;j<_url.length;j++) {
_beeld[j].x = (gebeurtenis.target.loader.width/2) - (_beeld[j].width/2);
_beeld[j].y = (gebeurtenis.target.loader.height/2) - (_beeld[j].height/2);
}
}
}
}
}