ik wil in FlashMX een tickertape maken. Hiervoor heb ik de breedte van mijn tekstveld nodig. In een aantal topics hier wordt als oplossing geboden de breedte van je karakters in de fla op te nemen en daarmee de breedte van je text uit te rekenen. dat leek mij wat omslachtig. wat ik wil doen, is de tekst in een dynamisch tekstveld zetten, dan in een while loop de maxhscroll van dat veld opvragen en zolang die groter is dan 0 de breedte van het textveld met bv 10 ophogen. (tekstveld heet content en staat in mc item)
probleem is hier dat de maxhscroll niet ge-updatet lijkt te worden, maar altijd gelijk blijft aan de beginwaarde.
wanneer ik nog een tweede mc'tje plaats met de naam controller en daaraan de volgende code
wordt wel netjes de maxhscroll ge-updatet. nadeel hiervan is dat je een aantal frames nodig heb totdat de juiste lengte bekend is. Op zich kun je natuurlijk de ticker laten beginnen, en terwijl hij loopt de lengte van de clip laten bepalen, maar ik zou het liever aan het begin al weten.
ook wel werkt is
Alleen wanneer je interval kleinder is dan je framerate, wordt de interval evengoed maar 1x per frame gecalled.
Mijn vraag is dus: hoe komt het dat binnen een while-loop de maxhscroll niet wordt ge-updatet, en hoe zorg ik ervoor dat dat wel gebeurt?
code:
1
2
3
4
| while (item.content.maxhscroll > 0 && item.content._width < 500) {
item.content._width += 10;
//trace ("w:"+item.content._width+" sc:"+item.content.maxhscroll);
} |
probleem is hier dat de maxhscroll niet ge-updatet lijkt te worden, maar altijd gelijk blijft aan de beginwaarde.
wanneer ik nog een tweede mc'tje plaats met de naam controller en daaraan de volgende code
code:
1
2
3
4
5
6
| controller.onEnterFrame = function () {
if (item.content.maxhscroll > 0) {
item.content._width += 10;
//trace ("w:"+item.content._width+" sc:"+item.content.maxhscroll);
}
} |
wordt wel netjes de maxhscroll ge-updatet. nadeel hiervan is dat je een aantal frames nodig heb totdat de juiste lengte bekend is. Op zich kun je natuurlijk de ticker laten beginnen, en terwijl hij loopt de lengte van de clip laten bepalen, maar ik zou het liever aan het begin al weten.
ook wel werkt is
code:
1
2
3
4
5
6
7
8
9
10
11
| interval=1;
checkFieldWidth = function (myField) {
if (myField.maxhscroll > 0) {
myField._width+=10;
updateAfterEvent();
} else {
clearInterval (myInterval);
}
}
myInterval = setInterval(this,"checkFieldWidth",interval, item.content); |
Alleen wanneer je interval kleinder is dan je framerate, wordt de interval evengoed maar 1x per frame gecalled.
Mijn vraag is dus: hoe komt het dat binnen een while-loop de maxhscroll niet wordt ge-updatet, en hoe zorg ik ervoor dat dat wel gebeurt?