PDA

Volledige versie bekijken : scrollPane werkt niet bij een function...


Michiel Jakobs
%Europe/Berlin %571 %2006, 14:43
lv = new LoadVars();
lv.onLoad = uitlezen;
lv.load("http://***.***com/");
function uitlezen(succes){
if(succes){
vak._height=600;
while(this['datum'+i] != undefined){
attachMovie("cellen", "cellen" add i, i);
eval("cellen" add i)._y =(30*i-21);
eval("cellen" add i).datum=this["datum"+i];
eval("cellen" add i).naam=this["naam"+i];
eval("cellen" add i).bedrag="€ "+this["bedrag"+i];
eval("cellen" add i).gebruiker=this["gebruiker"+i];
eval("cellen" add i).id=this["id"+i];
i=i+1;
}
}else{
trace('error');
}
}

Het wil me allemaal niet lukken :( ... ik heb een scrollPane, met daarin de movieclip vak; Daarin worden cellen geladen aan de hand van AttachMovie (de interface is dan ongeveer Exel). Nu heb ik 54 rijen cellen, maar de scrollbar komt niet te voorschijn nu het wel moet.
Als ik zeg vak._height=600; wordt het vak (waarin alle movie worden attached) vergroot en verschijnt er wel een scrollbar. Nu dacht ik de hoogte gewoon variabel te maken, denk 22(hoogte cel) * 54 (aantal rijen). Om dit te kunnen doen, moet vak._height in de function.
Om alles gewoon te testen doe ik wederom vak._height=600;. Het vak wordt vergroot. Maar de scrollPane werkt niet. Hoe komt dat en hoe kan ik dat oplossen.

Mischien vak._height buiten de functie? maar dan moet ik dus wel de var aantal_rijen uit de functie krijgen om er verder mee te rekenen.

Alvast bedant.

Domeinnaam verwijderd, ivm google zoekresultaten

Dauntless
%Europe/Berlin %913 %2006, 22:55
Dat is een soort van 'bug' van het ScrollPane en die kan je gelukkig nog omzeilen ook: roep 'onComplete()' van het scrollpane op.

Overigens is je code erg verouderd. (Je kan nu denken: "zeik nu niet" maar het keyword 'add' wordt bv niet meer ondersteund in F8 en daar kan je later dan moeilijkheden mee gaan krijgen).
'attachMovie' is een method van de MovieClip class en je gebruikt hem niet op een object. (myMovieClip.attachMovie() <-> attachMovie() )
Ik vind het zelfs beetje vreemd dat hij werkt :p.
lv = new LoadVars ();
lv.onLoad = uitlezen;
lv.load ("http://***.double-pitch.com/");
function uitlezen (succes)
{
if (succes)
{
vak._height = 600;
while (this ['datum' + i] != undefined)
{
var mc = attachMovie ("cellen", "cellen" + i, i);
mc._y = (30 * i - 21);
mc.datum = this ["datum" + i];
mc.naam = this ["naam" + i];
mc.bedrag = "€ " + this ["bedrag" + i];
mc.gebruiker = this ["gebruiker" + i];
mc.id = this ["id" + i];
i = i + 1;

}
//instancenaam aanpassen
scrollPaneInstance.onComplete();

}else
{
trace ('error');

}
}

Roenes
%Europe/Berlin %950 %2006, 23:48
@Dauntless: is daar eigenlijk niet de refreshPane() methode voor bedoelt in plaats van de onComplete() :)

Dauntless
%Europe/Berlin %962 %2006, 00:05
Method; refreshes the scroll pane after content is loaded. This method reloads the content, but does not reset the scroll bar.
Dus ik ging er van uit dat hij ook de scrollBar niet aanpaste ?

Even testen...
Check back in 5 minutes
Als ik refreshPane gebruik wordt m'n geattachte mc zelfs terug verwijdert :p.

onComplete dus :). (Daar ben ik overigens ook pas achter gekomen na enkele dagen zoekwerk hoor)

Roenes
%Europe/Berlin %964 %2006, 00:08
Ik weet het niet. Ik werk niet heel vaak met de scrollPane maar als ik er dingen in zet en de scrollbalk doet het niet, dan doet een refreshPane() wonderen :)