Definerer scalebredde efter JPG bredde
Dette spørgsmål er videreført fra:http://www.eksperten.dk/spm/452580
SPØRGSMÅL TIL NEDENSTÅENDE SCRIPT:
Vedr. function trans(speed)
Her scaleres fra 0-100 MovieClippet 'Transition'. I dette MC ligger et hvidt område svarende til max bredden på et billede (645px). Efter scaleringen kaldes denne: function elasticMove.
Det vil alt i alt sige: At lige meget om selve JPG billedet er 645px bredt eller 300px bredt, da scaleres det hvide område over billedet altid fra 0 - 645px og udløser herefter: function elasticMove.
Problemet er at dette giver en forsinkelse af kaldet på function elasticMove for de billeder der IKKE er så bredde.
Er det derfor muligt at sætte scalebredden efter billedets egen bredde, eller f.eks. benytte en: Transition._x (hvor billedets bredde så manuelt defineres i .txt fil) !?!
Håber dette er bare lidt forståeligt.
SCRIPT:
preloadBar._alpha = 0;
num = 1;
max = 4;
function setString(num) {
u = 'content/imagery/sevendeadlysins/text/'+num+'.txt';
i = 'content/imagery/sevendeadlysins/images/'+num+'.jpg';
}
setString(num);
function viewImage(speed) {
trace(speed);
clearInterval(timer);
trace("cleared");
trans(speed)
}
function trans(speed){
Transition._xscale = 0;
this.onEnterFrame = function(){
trace(Transition._xscale)
if (Transition._xscale<100) {
Transition._xscale += speed;
} else {
Transition._xscale = 100;
this.onEnterFrame = 0;
elasticMove(1, 0.2);
}
}
}
function elasticMove(startspeed, acceleration) {
Description._visible = true;
xspeed = startspeed;
moving = true;
this.onEnterFrame = function() {
if (xspeed>-startspeed && moving) {
xspeed -= acceleration;
} else {
moving = false;
if (xspeed<0) {
xspeed += acceleration;
} else {
xspeed = 0;
this.onEnterFrame = 0;
}
}
Description._x += xspeed;
};
}
function preload (){
preloadBar._alpha = 100;
imageLoaded = false;
preloadBar._xscale = loadedBytes = totalBytes = percent = 0;
this.onEnterFrame = function(){
totalBytes = ImageHolder.getBytesTotal();
loadedBytes = ImageHolder.getBytesLoaded();
percent = Math.floor(loadedBytes/totalBytes*100);
if(totalBytes > 4) preloadBar._xscale = percent;
if(!imageLoaded && loadedBytes == totalBytes && totalBytes > 4){
imageLoaded = true;
preloadBar._alpha = 0;
timer = setInterval(viewImage,400,25);
}
}
}
function handler() {
Transition._xscale = 0;
Description.wordwrap = true;
Description.autoSize = true;
Description.text = this.Description;
Description._visible = false;
Description._x = this.Description_x;
Description._y = this.Description_y;
loadMovie(i, "ImageHolder");
preload()
}
buttonIsActive = true;
function buttonInactive (){
buttonIsActive = false;
buttonTimer = setInterval(buttonActive, 1400);
}
function buttonActive(){
buttonIsActive = true;
clearInterval(buttonTimer);
}
l = new LoadVars();
l.load(u);
l.onLoad = handler; buttonInactive();
stop();
