Hi guys!
I just joined Kirupa, and wanted to share my dilemma right away. :azn:
Los problemos:
I have the thumbs loaded from a text file, which are generated by a php file, that reads the folder’s content. This works fine.
So, the problem is that for some reason I have to click the kategory buttons at least twice, to get all the thumbnails appear to the stage in Flash.
Is it a image preloading problem, or is it just my code?
My guess is that the images take longer to load, than the script to execute?
Oh, and in my code I use loadMovie() to load the thumbs.
Is loadClip() a better way?
I’m not a full time coder, but I’ve done actionscript and php on occasion.
So please wisemen, show me the light!!
Here’s the code I wrote: (Don’t mind the finnish comments. :devious: )
stop();
//includet
import mx.transitions.Tween;
import mx.transitions.easing.*;
//************************ alkuasetelma ********************************
//kategorianapit
_global.portfolioBtnArr = new Array(
esite,
flyerit,
julisteet,
kayntikortti,
logot,
myymala,
outdoor,
pakkaukset,
printti,
www
);
//julistetaan muutama globaalimuuttuja
_global.kategoria;
_global.images;
imageHolder._y = 44;
imageHolder._x = 25;
//nappien toiminnot
for(i=0 ; i < portfolioBtnArr.length ; i++){
portfolioBtnArr*.onPress = function(){
//poistetaan luodut thumpit edellisessä kategoriassa
for(a = 0; a< images.length;a++)
{
unloadMovie(_root["picture_holder"+a]);
}
//Puretaan "this" määrite stringiksi
this_String = String(this);
//luodaan siitä uusi string objekti
kategoryString = new String(this_String);
//määritetään onPress-funktion sisällä i:n arvoksi arvo, joka asetetaan for loopissa picture_holderin perään arvolla i
kategoria = kategoryString.slice(23);
if( !_root.picture_holder){
//uusi loadVars
myFile = new LoadVars();
//ladataan textifile napin mukaan "kategoria määritelty napissa
myFile.load("txt/" + kategoria + ".txt");
myFile.onLoad = function()
{
//Pilkotaan tekstifilessa oleva string pilkun kohdalta Arrayksi
picArray = myFile.kuvat.split(",");
//luodaan globaalimuuttuja, joka pitää sisällään ladatun Arrayn
images = picArray;
TheGallery();
}
}
}
//Lisätty, koska thumpit ei näkyny välttämättä onpressillä
portfolioBtnArr*.onRelease = function(){
//************************ kuvannimien haku txt filesta ********************************
//uusi loadVars
myFile = new LoadVars();
//ladataan textifile napin mukaan "kategoria määritelty napissa
myFile.load("txt/" + kategoria + ".txt");
trace("txt/" + kategoria + ".txt");
myFile.onLoad = function()
{
//Pilkotaan tekstifilessa oleva string pilkun kohdalta Arrayksi
picArray = myFile.kuvat.split(",");
//luodaan globaalimuuttuja, joka pitää sisällään ladatun Arrayn
images = picArray;
};
TheGallery();
}
}
function TheGallery():Void{
//************************ Kuvien lataus ja thumppien luonti ********************************
//wrapper mc
var portfolioHolder = _root.createEmptyMovieClip("portfolioHolder_mc", getNextHighestDepth());
portfolioHolder.onEnterFrame = function()
{
for (i = 0; i < images.length; i++)
{
var pichold = _root.createEmptyMovieClip("picture_holder"+i, i);
pichold.createEmptyMovieClip("thumbnail", 5+i);
pichold.onEnterFrame = function(){
this.thumbnail._width = 36;
this.thumbnail._height = 36;
delete this.onEnterFrame;
}
if(i >= 7 && i < 14)
{
pichold._x = 800; //800;
pichold._y = 315 + (40* (i - 7));
}
else if(i >= 14 && i < 21)
{
pichold._x = 760; //840;
pichold._y = 315 + (40*(i - 14));
}
else if(i >= 21 && i < images.length)
{
pichold._x = 720; //840;
pichold._y = 315 + (40*(i - 21));
}
else
{
pichold._x = 840; //760;
pichold._y = 315 + (40*i);
}
//ladataan thumb kuva
pichold.thumbnail.loadMovie("images/thumb/" + kategoria + "/" +images*);
//actionnit thumb painettaessa
pichold.onPress = function(){
trace(this);
//kaikki kategosialinkit pois käytöstä
for(v=0 ; v < portfolioBtnArr.length ; v++){
portfolioBtnArr[v].enabled = false;
}
//lopetetaan kuvan esiintulo, siltä varalta että toista thumbnailia painetaan kesken animoinnin
//näin ei tapahtu bugeja ison kuvan sisäänfeidauksessa
twMC.stop();
picBg._alpha = 100;
//imageHolder._alpha = 0;
//Puretaan "this" määrite stringiksi
test_String = String(this);
//luodaan siitä uusi string objekti
position = new String(test_String);
//määritetään onPress-funktion sisällä i:n arvoksi arvo, joka asetetaan for loopissa picture_holderin perään arvolla i
N = position.slice(22);
//kuvan latauksen jälkeen ------------------------------------------------Ollaan vielä onPressin sisällä
//luodaan movieclip lataaja
var mcl:MovieClipLoader = new MovieClipLoader();
//luodaan listener
var listener:Object = {};
//lisätään luotuun mc-lataajaan listener
mcl.addListener( listener );
//luodaan uusi tyhjä mc
createEmptyMovieClip( 'placeholder_mc', getNextHighestDepth() );
//ladataan clip/movie -tässä casessa kuva
mcl.loadClip( "images/jpg/" + kategoria + "/" + images[N] , imageHolder );
//latauksen alussa luodaan funktio joka tarkistaa latausstatuksen
listener.onLoadInit = function( mc:MovieClip )
{
//ladattu klippi on valmis
//trace( 'loaded: '+mc );
//kehysten koko
tw1 = new Tween( picBg, "_width", Elastic.easeOut, picBg._width, mc._width + 10, 1, true);
tw2 = new Tween( picBg, "_height", Elastic.easeOut, picBg._height, mc._height + 10, 1, true);
tw3 = new Tween( picBg, "_x", Elastic.easeOut, picBg._x, mc._x - 5, 1, true);
tw4 = new Tween( picBg, "_y", Elastic.easeOut, picBg._y, mc._y - 5, 1, true);
//tw2.onMotionFinished = function(){
//kuvan fadeIn
twMC = new Tween(mc, "_alpha", Regular.easeOut, 0, 100,1, true);
for(v=0 ; v < portfolioBtnArr.length ; v++){
portfolioBtnArr[v].enabled = true;
// }
}
}
//kun lataus on käynnissä, tämä funktio toimitetaan
listener.onLoadProgress = function( mc:MovieClip, bytesLoaded, bytesTotal )
{
//more data has been loaded
// trace( ( ( bytesLoaded/bytesTotal ) * 100 ) +'%' )
//kuva pois näkyvistä
mc._alpha = 0;
}
//--
}
// Estää flashia yrittämästä ladata olemattomia kuvia ja thumbeja, tarkastamalla images arrayn
//kumumäärän, ja lopettamalla loopin jos se saavutetaan ennen muita ehtoja.
if(i == images.length -1)
{
break;
}
}
delete this.onEnterFrame;
}
//end of the gallery function
}
//**************************************************************************