PDA

Volledige versie bekijken : Code verkorten


_StOrM_
%Europe/Berlin %814 %2008, 20:32
Ik heb volgende functie :

function TabHandler() {
if (Key.isDown(Key.TAB)) {
tot1_txt.text = Number(aant1_txt.text*stkpr1_txt.text);
afrond(Number(tot1_txt.text),2);
tot2_txt.text = Number(aant2_txt.text*stkpr2_txt.text);
afrond(Number(tot2_txt.text),2);
tot3_txt.text = Number(aant3_txt.text*stkpr3_txt.text);
afrond(Number(tot3_txt.text),2);
tot4_txt.text = Number(aant4_txt.text*stkpr4_txt.text);
afrond(Number(tot4_txt.text),2);
tot5_txt.text = Number(aant5_txt.text*stkpr5_txt.text);
afrond(Number(tot5_txt.text),2);
tot6_txt.text = Number(aant6_txt.text*stkpr6_txt.text);
afrond(Number(tot6_txt.text),2);
tot7_txt.text = Number(aant7_txt.text*stkpr7_txt.text);
afrond(Number(tot7_txt.text),2);
tot8_txt.text = Number(aant8_txt.text*stkpr8_txt.text);
afrond(Number(tot8_txt.text),2);
tot9_txt.text = Number(aant9_txt.text*stkpr9_txt.text);
afrond(Number(tot9_txt.text),2);
tot10_txt.text = Number(aant10_txt.text*stkpr10_txt.text);
afrond(Number(tot10_txt.text),2);
tot11_txt.text = Number(aant11_txt.text*stkpr11_txt.text);
afrond(Number(tot11_txt.text),2);
tot12_txt.text = Number(aant12_txt.text*stkpr12_txt.text);
afrond(Number(tot12_txt.text),2);
tot13_txt.text = Number(aant13_txt.text*stkpr13_txt.text);
afrond(Number(tot13_txt.text),2);
checkEmpty(tot1_txt);
checkEmpty(tot2_txt);
checkEmpty(tot3_txt);
checkEmpty(tot4_txt);
checkEmpty(tot5_txt);
checkEmpty(tot6_txt);
checkEmpty(tot7_txt);
checkEmpty(tot8_txt);
checkEmpty(tot9_txt);
checkEmpty(tot10_txt);
checkEmpty(tot11_txt);
checkEmpty(tot12_txt);
checkEmpty(tot13_txt);
//calculateMVH();
//checkEmpty(mvh_txt);
}
}

en wou deze vervangen door een for loopje:
function TabHandler(){
if (Key.isDown(Key.TAB)) {
for (var i = 1; i >= aantalRegels; i++) {
var tempTot = _root["tot"+i+"_txt"];
var tempAantal = _root["aant"+i+"_txt"];
var tempStkpr= _root["stkpr"+i+"_txt"];
tempTot.text = Number(tempAantal.text*tempStkpr.text);
afrond(Number(tempTot.text),2);
}


}
}

dit omdat dat heel wat regels code bespaart en zo kan ik ook tot zoveel gaan als ik wil met nummering van tekstveldje, maar het werkt niet echt meer ... Enig idee?

Jan
%Europe/Berlin %870 %2008, 21:53
var aantalRegels:Number=???????;
function TabHandler()
{
if (Key.isDown(Key.TAB))
{
for (var i:Number=1; i<aantalRegels; i++)
{
this["tot"+i+"_txt"].text = Number(_root["aant"+i+"_txt"].text) * Number(this["stkpr"+i+"_txt"].text);
afrond(Number(this["tot"+i+"_txt"].text),2);
checkEmpty(this["tot"+i+"_txt"]);
}
//calculateMVH();
//checkEmpty(mvh_txt);
}
}
En eigenlijk werk je in dit geval best niet met isDown maar met onKeyDown dwz dat er 1 keer op de knop gedrukt is: (en dan heb je ook die aparte tabhandler functie niet nodig)

var toetsenBordListener:Object=new Object();
Key.addListener(toetsenBordListener);
toetsenBordListener.onKeyDown=function()
{
if(Key.getCode()==Key.TAB)
{
for (var i:Number=1; i<aantalRegels; i++)
{
this["tot"+i+"_txt"].text = Number(_root["aant"+i+"_txt"].text) * Number(this["stkpr"+i+"_txt"].text);
afrond(Number(this["tot"+i+"_txt"].text),2);
checkEmpty(this["tot"+i+"_txt"]);
}
//calculateMVH();
//checkEmpty(mvh_txt);
}
}
En probeer _root altijd te vermijden door combinaties van this en _parent te gebruiken.
Als die tekstvelden gewoon op de hoofdtijdlijn staan (_root) kan je in dit geval this gebruiken.

Groeten,
http://users.telenet.be/jansurf/cwo.png,Jan

PS: Er zijn specifieke tags voor actionscript die de syntax kleuren en je code leesbaarder maken:
http://img175.imageshack.us/img175/3632/forumtagsae7.jpg

_StOrM_
%Europe/Berlin %974 %2008, 00:22
Tnx, het werkt... ;)