webscripter
Programmer
I'm writing a script that will load images when a user clicks a list box of image names. No images are loaded unless the user clicks on the list box. I can get the first image to fade in but am having trouble on subsequent rounds. Using setInterval is pretty easy. I'm not sure where the script is losing it's performance.
Can anyone tell me where the problem lies?
stop();
alph = 0;
prealpha = 100;
function disappear(num, pic, itemcount){
var prevviewed = 0;
var flag = 0;
trace("in disappear("+num+", "+pic+"
"
;
for(var i=0;i<itemcount;i++){
if(num != i){
if(this["pic_"+i]){
var isprev = getProperty(this["pic_"+i], _alpha);
if(isprev == 100 && flag ==0){
flag = 1;
prevviewed = i;
trace("prevviewed is "+prevviewed);
}
}
}
}
fadin(num,pic, prevviewed);
}
function fadin(num,pic, prev){
//set the picture chosen to 100%
trace("in fadin("+num+", "+pic+", prev:"+prev+"
"
;
if(this["pic_"+num]){
fader2 = setInterval(bringin, 100, prev, this["pic_"+num]);
}else{trace("image doesn't exist yet."
;
loadMC(num, pic, prev);
}
}
function bringin(prv, obj ){
trace("in bringin(prv: "+prv+", "+obj+"
"
;
alph += 10;
prealpha -= 10;
trace(this["pic_"+prv]+" ******* prealpha -10 :"+prealpha);
setProperty(this["pic_"+prv], _alpha, prealpha);
setProperty(obj, _alpha, alph);
updateAfterEvent();
if(alph >= 100){
setProperty(this["pic_"+prv], _alpha, "0"
;
setProperty(obj, _alpha, "100"
;
updateAfterEvent();
trace("clear interval fadeint"
;
clearInterval(fader2);
}
}
function loadMC(num, pic){
trace("in loadMC("+num+", "+pic+"
"
;
if(pic != ""
{
// trace("this visible false"
;
setProperty(this, _visible, false);
var j = num + 10;
trace("loading "+pic+" into "+this["pic_"+num]);
this.createEmptyMovieClip("pic_"+num,j).loadMovie(pic);
preload(num, this["pic_"+num]);
}else{trace("pic variable isn't set :"+pic);}
}
function preload(num, obj) {
trace("in preload("+num+"
"
;
//preloader._visible = true;
//preloader._bar._xscale = 0;
//preloader.display.text = "0% loaded";
loadinter = setInterval(callback, 10, obj);
}
function callback(obj) {
trace("in callback("+obj+"
"
;
//this traces as undefined, it should have been created above in loadMC()
var download = obj.getBytesTotal();
var downloaded = obj.getBytesLoaded();
var percentLoaded = Math.cell(downloaded/download*100);
// preloader.display.text = percentLoaded+"% loaded";
// preloader.bar._xscale = percentLoaded;
updateAfterEvent();
if (downloaded == download && download>0) {
//preloader._visible = false;
trace("setpicture is called"
;
clearInterval(loadinter);
setpicture(obj, 275, 200, 0,0);
}
}
function setpicture(obj, bw, bh, xp, yp){
trace("in setpicture"
;
var w = getProperty(obj, _width);
var h = getProperty(obj, _height);
var x = 0;
var y = 0;
if(w <= bw){
}else{
h = Math.round(h*bw/w);
w = bw;
}
if(h < 200){
}else{
w = Math.round(w*200/h);
h = bh;
}
if(h <= bh && w <= bw){
var center = ( bh - h)/2;
y = center;
center = (bw - w)/2;
x = center;
}
setProperty(obj,_width, w);
setProperty(obj,_height, h);
x = xp+x;
setProperty(obj,_x,x);
y = yp+y;
setProperty(obj,_y,y);
setProperty(obj,_alpha,0);
alph = 0;
trace("this visible true"
;
setProperty(this, _visible, true);
fader1 = setInterval(inload, 100, obj);
}
function inload(obj){
trace("inload alph : "+alph);
trace("inload obj.alpha: "+getProperty(obj, _alpha));
alph += 10; setProperty(obj,_alpha,alph);
updateAfterEvent();
if(alph > 90){
trace(obj+ " alpha is set to 100%"
;
setProperty(obj, _alpha,"100"
;
clearInterval(fader1);
}
}
Thanks
Tricia
yorkeylady@earthlink.net
Can anyone tell me where the problem lies?
stop();
alph = 0;
prealpha = 100;
function disappear(num, pic, itemcount){
var prevviewed = 0;
var flag = 0;
trace("in disappear("+num+", "+pic+"
for(var i=0;i<itemcount;i++){
if(num != i){
if(this["pic_"+i]){
var isprev = getProperty(this["pic_"+i], _alpha);
if(isprev == 100 && flag ==0){
flag = 1;
prevviewed = i;
trace("prevviewed is "+prevviewed);
}
}
}
}
fadin(num,pic, prevviewed);
}
function fadin(num,pic, prev){
//set the picture chosen to 100%
trace("in fadin("+num+", "+pic+", prev:"+prev+"
if(this["pic_"+num]){
fader2 = setInterval(bringin, 100, prev, this["pic_"+num]);
}else{trace("image doesn't exist yet."
loadMC(num, pic, prev);
}
}
function bringin(prv, obj ){
trace("in bringin(prv: "+prv+", "+obj+"
alph += 10;
prealpha -= 10;
trace(this["pic_"+prv]+" ******* prealpha -10 :"+prealpha);
setProperty(this["pic_"+prv], _alpha, prealpha);
setProperty(obj, _alpha, alph);
updateAfterEvent();
if(alph >= 100){
setProperty(this["pic_"+prv], _alpha, "0"
setProperty(obj, _alpha, "100"
updateAfterEvent();
trace("clear interval fadeint"
clearInterval(fader2);
}
}
function loadMC(num, pic){
trace("in loadMC("+num+", "+pic+"
if(pic != ""
// trace("this visible false"
setProperty(this, _visible, false);
var j = num + 10;
trace("loading "+pic+" into "+this["pic_"+num]);
this.createEmptyMovieClip("pic_"+num,j).loadMovie(pic);
preload(num, this["pic_"+num]);
}else{trace("pic variable isn't set :"+pic);}
}
function preload(num, obj) {
trace("in preload("+num+"
//preloader._visible = true;
//preloader._bar._xscale = 0;
//preloader.display.text = "0% loaded";
loadinter = setInterval(callback, 10, obj);
}
function callback(obj) {
trace("in callback("+obj+"
//this traces as undefined, it should have been created above in loadMC()
var download = obj.getBytesTotal();
var downloaded = obj.getBytesLoaded();
var percentLoaded = Math.cell(downloaded/download*100);
// preloader.display.text = percentLoaded+"% loaded";
// preloader.bar._xscale = percentLoaded;
updateAfterEvent();
if (downloaded == download && download>0) {
//preloader._visible = false;
trace("setpicture is called"
clearInterval(loadinter);
setpicture(obj, 275, 200, 0,0);
}
}
function setpicture(obj, bw, bh, xp, yp){
trace("in setpicture"
var w = getProperty(obj, _width);
var h = getProperty(obj, _height);
var x = 0;
var y = 0;
if(w <= bw){
}else{
h = Math.round(h*bw/w);
w = bw;
}
if(h < 200){
}else{
w = Math.round(w*200/h);
h = bh;
}
if(h <= bh && w <= bw){
var center = ( bh - h)/2;
y = center;
center = (bw - w)/2;
x = center;
}
setProperty(obj,_width, w);
setProperty(obj,_height, h);
x = xp+x;
setProperty(obj,_x,x);
y = yp+y;
setProperty(obj,_y,y);
setProperty(obj,_alpha,0);
alph = 0;
trace("this visible true"
setProperty(this, _visible, true);
fader1 = setInterval(inload, 100, obj);
}
function inload(obj){
trace("inload alph : "+alph);
trace("inload obj.alpha: "+getProperty(obj, _alpha));
alph += 10; setProperty(obj,_alpha,alph);
updateAfterEvent();
if(alph > 90){
trace(obj+ " alpha is set to 100%"
setProperty(obj, _alpha,"100"
clearInterval(fader1);
}
}
Thanks
Tricia
yorkeylady@earthlink.net