image object hoogt en breedte probleem

Status
Niet open voor verdere reacties.

hockmen

Nieuwe gebruiker
Lid geworden
15 mei 2006
Berichten
2
Dag mensen

ik heb een klein/groot probleem en ik vind het niet.

ik maak een image object aan om de afmetingen op te vragen, per letter lust een while door een string afkomstig van een inputveld.

na het typen van een letter zie je een images tevoorschijn komen, het aantal images staat gelijk aan de aantal letters. tot hier werkt het allemaal. nu heb ik nog een functie(geen function) erbij geschreven zodat de kleur van de images veranderen. en hier loopt het vele malen fout. hij laat willekeurig images weg.

ik weet waar het probleem zit maar ik kan het niet oplossen. het heeft te maken met het opvragen van de breedte en de hoogte van de ingeladen image in de image object. soms geeft hij de waarde 0, terwijl hij wel geladen is (denk ik) dit heb ik proberen op te lossen door een while 0 zoals onder te zien.

hier de code:
Code:
var afb = new Image(); 
var geladenImage ; 

if(teken.match(objRegExp)){ 
   teken = teken.toLowerCase(); 
   geladenImage = lettertype +"/"+kleur+"/"+teken+"_"+grote+".png"; 
}else if (teken.match(objRegExpLow)){ 
   geladenImage = lettertype +"/"+kleur+"/"+teken+"_"+grote+".png"; 
}else{ 
   geladenImage = lettertype +"/"+kleur+"/"+teken+"_"+grote+".png"; 
} 

afb.src = geladenImage; 

var p = 0; 
while (!afb.complete) 
{ 
      p++; 
      setTimeout("",200); 
      if(p>10) 
         break; 
} 

var i = document.getElementById(eval("'image"+j+"'")); 

i.style.visibility = "visible"; 
i.src = geladenImage; 
    
   var breed = afb.width; 
   var hoog = afb.height; 

   while (breed == "0"){ 
      breed = afb.width; 
   } 
   while (hoog == "0"){ 
      hoog = afb.height; 
      alert (hoog); 
   } 
   if(size == 6){ 
      if(gekozenP =="mail" || gekozenP =="slagzin"){ 
         breed = breed/10*4; 
         hoog = hoog /10*4; 
      }else{ 
         breed = breed/10*6; 
         hoog = hoog /10*6; 
      } 
      i.style.width = breed + "px"; 
      i.style.height = hoog + "px"; 
   }else{ 
      breed = breed/10*8; 
      hoog = hoog /10*8; 
      i.style.width = breed +"px"; 
      i.style.height = hoog+'px'; 
   }
weet hier iemand raad mee?
 
Hoe 'schrijf' je de letterafbeeldingen naar het document, met innerHTML?

Als je <img src="..." onload="function(this)"> gebruikt wordt de function automatisch gestart zodra de afbeelding is geladen. De this geeft dan meteen het image-object door aan de functie, daar gebruik je nu var i = ... voor.

Met de hele pagina als bijlage, of een link naar een test-versie op internet kan ik meer zeggen. :)


Vr.Gr. Egel.
 
Dag egel

vooraleerst bedankt voor je reactie.

je kan de volledige code bekijken op deze url.
http://www.bivolino.com/shirts/monogram/index.asp

ik kan de onload niet gebruiken in dit script omdat de images niet vast staan en het afhankelijk is van het inputveld. mijn functie start bij schrijfMonogram() van daaruit vertakt hij.

om een antwoord te geven op je eerste vraag.
ik plaats de image url in de var geladenImage deze ken ik toe aan een image src
var i = document.getElementById(eval("'image"+j+"'"));

i.style.visibility = "visible";
i.src = geladenImage;

mvg
 
Dat is een complex script! :D

Ik zie soms even drie tekentjes verschijnen en daarna zijn ze weer weg, het lijkt alsof de functie imageBlank() er weer blank.gif van maakt.

Probeer het eens met dit plaatje
attachment.php

dan wordt dat misschien zichtbaar.


Vr.Gr. Egel.
 

Bijlagen

  • blank.gif
    blank.gif
    336 bytes · Weergaven: 22
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan