Foreal
%Europe/Berlin %544 %2008, 14:03
Beste forum collega's,
Als beginnend applicatie ontwerper ben ik totaal nieuw met flash/actionscript en probeer een klein probleempje op te lossen.
Het probleem:
Als ik de flash site bekijk laden de thumbnails niet op naam volgorde (01.jpg, 02.jpg etc), maar de eerste die laad komt als 1ste te staan terwijl dat thumbje 05.jpg is bijv.
De bedoeling
1. Get thumbnails
2. onLoadInit (thumbs)
3. check de thumb names 01.jpg, 02.jpg etc.
4. sorteer de thumbnails
5. if thumb 01.jpg is loaded, load next (onComplete?)
6. else continue to load 01.jpg
Het liefst ook dynamisch, dus dat men niet aan 10-20 thumbnails max. vast zit, maar deze automatisch door rekend naar 100 thumbs bijv. 01.jpg tot 100.jpg
De code
on(release){
// init
this._parent.gotoAndStop("show_pictures");
this._parent._parent.scroll_shape_bottom.gotoAndSt op('hide');
_root.disable_lines();
temp_left = 0;
// Thumb image loader
var my_mcl:MovieClipLoader = new MovieClipLoader();
var mclListener:Object = new Object();
mclListener.onLoadInit = function(mc:MovieClip):Void {
mc._x = temp_left;
temp_left = temp_left + mc._width + 5;
_root.project_details.picture_scroll_shape.picture _logic.clip_width = -560 + temp_left;
if(_root.project_details.picture_scroll_shape.pict ure_logic.clip_width < 0){
_root.project_details.picture_scroll_shape.gotoAnd Stop('hide');
}else{
_root.project_details.picture_scroll_shape.gotoAnd Stop('show');
}
mc.onRelease=function(){
ShowBigPicture(substring(mc._name,7));
}
}
my_mcl.addListener(mclListener);
// Big image loader
var my_bmcl:MovieClipLoader = new MovieClipLoader();
var bmclListener:Object = new Object();
bmclListener.onLoadInit = function(bmc:MovieClip):Void {
//Center picture
total = 580;
trace(bmc._width);
trace((total/2) - (bmc._width/2));
bmc._x = -600 + (total/2 - bmc._width/2);
}
my_bmcl.addListener(bmclListener);
function ShowBigPicture(sourceimg){
unloadMovie(_root.project_details.picture_big);
link = 'http://url.nl/'+_root.project_details.picpath+_root.project_deta ils.picture_array[sourceimg];
my_bmcl.loadClip(link, _root.project_details.picture_big);
}
my_bmcl.loadClip('http://url.nl/'+this._parent.picpath+this._parent.picture_array[0], _root.project_details.picture_big);
for(i=0;i<this._parent.picture_array.length;i++){
this._parent.thumbs_mc.createEmptyMovieClip("thumb_"+i, i);
my_mcl.loadClip('http://url.nl/'+this._parent.picpath+'small_thumbs/'+this._parent.picture_array[i], eval("this._parent.thumbs_mc.thumb_"+i));
}
this.gotoAndStop(3);
}
Hoe kan ik dit t beste oplossen? Velen zeggen met een onComplete function maar dit is geen standaard van AS?
Zou fijn zijn als iemand me hiermee kan helpen.
Greetz ~Foreal
Als beginnend applicatie ontwerper ben ik totaal nieuw met flash/actionscript en probeer een klein probleempje op te lossen.
Het probleem:
Als ik de flash site bekijk laden de thumbnails niet op naam volgorde (01.jpg, 02.jpg etc), maar de eerste die laad komt als 1ste te staan terwijl dat thumbje 05.jpg is bijv.
De bedoeling
1. Get thumbnails
2. onLoadInit (thumbs)
3. check de thumb names 01.jpg, 02.jpg etc.
4. sorteer de thumbnails
5. if thumb 01.jpg is loaded, load next (onComplete?)
6. else continue to load 01.jpg
Het liefst ook dynamisch, dus dat men niet aan 10-20 thumbnails max. vast zit, maar deze automatisch door rekend naar 100 thumbs bijv. 01.jpg tot 100.jpg
De code
on(release){
// init
this._parent.gotoAndStop("show_pictures");
this._parent._parent.scroll_shape_bottom.gotoAndSt op('hide');
_root.disable_lines();
temp_left = 0;
// Thumb image loader
var my_mcl:MovieClipLoader = new MovieClipLoader();
var mclListener:Object = new Object();
mclListener.onLoadInit = function(mc:MovieClip):Void {
mc._x = temp_left;
temp_left = temp_left + mc._width + 5;
_root.project_details.picture_scroll_shape.picture _logic.clip_width = -560 + temp_left;
if(_root.project_details.picture_scroll_shape.pict ure_logic.clip_width < 0){
_root.project_details.picture_scroll_shape.gotoAnd Stop('hide');
}else{
_root.project_details.picture_scroll_shape.gotoAnd Stop('show');
}
mc.onRelease=function(){
ShowBigPicture(substring(mc._name,7));
}
}
my_mcl.addListener(mclListener);
// Big image loader
var my_bmcl:MovieClipLoader = new MovieClipLoader();
var bmclListener:Object = new Object();
bmclListener.onLoadInit = function(bmc:MovieClip):Void {
//Center picture
total = 580;
trace(bmc._width);
trace((total/2) - (bmc._width/2));
bmc._x = -600 + (total/2 - bmc._width/2);
}
my_bmcl.addListener(bmclListener);
function ShowBigPicture(sourceimg){
unloadMovie(_root.project_details.picture_big);
link = 'http://url.nl/'+_root.project_details.picpath+_root.project_deta ils.picture_array[sourceimg];
my_bmcl.loadClip(link, _root.project_details.picture_big);
}
my_bmcl.loadClip('http://url.nl/'+this._parent.picpath+this._parent.picture_array[0], _root.project_details.picture_big);
for(i=0;i<this._parent.picture_array.length;i++){
this._parent.thumbs_mc.createEmptyMovieClip("thumb_"+i, i);
my_mcl.loadClip('http://url.nl/'+this._parent.picpath+'small_thumbs/'+this._parent.picture_array[i], eval("this._parent.thumbs_mc.thumb_"+i));
}
this.gotoAndStop(3);
}
Hoe kan ik dit t beste oplossen? Velen zeggen met een onComplete function maar dit is geen standaard van AS?
Zou fijn zijn als iemand me hiermee kan helpen.
Greetz ~Foreal