PDA

Volledige versie bekijken : Dynamisch tekstvak met scrollbar


Vibrasphere
%Europe/Berlin %725 %2005, 17:24
Hallo flashers,

Ik ben onlangs op een probleempje gestoten in Flash, en vind er geen (goede) oplossing voor.

Ik heb een gastenboek gemaakt, waar je aan de ene kant het gastenboek kan signeren en aan de andere kant het kunt lezen. Door middel van een PHP-script worden de berichten ingelezen uit en opgeslagen in een txt-bestandje. De berichten worden dan weergegeven in een dynamisch tekstvak met behulp van volgend Actionscript:
loadVariablesNum("guestbook.php?NumLow="+NumLow+"&NumHigh="+NumHigh+"&R="+random(999), 0);Het gastenboek werkt perfect.

Wanneer ik op de button "gastenboek" klik, gaat hij naar een bepaalde frame, en hier staat dan het gastenboek. De scrollbar past zich aan aan het dynamisch tekstveld, waar standaard instaat "Een ogenblikje geduld". Maar dan worden de gegevens uit het txt-bestandje ingeladen en de scrollbar past zich niet automatisch opnieuw aan aan de nieuwe inhoud van het dynamisch tekstvak! Als ik dan even naar een ander onderdeel van de website surf en ik klik dan weer op gastenboek is de scrollbar wel aangepast aan de tekst van het dynamisch tekstvak. Is er een mogelijkheid om de scrollbar te refreshen, ofzo?

Ik denk dat dit probleem nog eens gemeld is geweest op dit forum, maar bij het zoeken door het forum ben ik niet tot een oplossing gekomen...

Iemand die me kan helpen? FLA staat zo dadelijk hier (http://www.vibrasphere.be/flaVoorForum.fla).

BlijBlauw
%Europe/Berlin %729 %2005, 17:31
even google'd en kwam op deze site:

Staat heel hele AS-code, denk dat het zo wel moet lukken :)
http://www.actionscript.org/tutorials/intermediate/scrolling_a_text_box_II/index.shtml

Vibrasphere
%Europe/Berlin %743 %2005, 17:50
Ja, heb zitten Googlen, hoor :) Maar ik werk met zo'n scrollbar-component die standaard in Flash MX zitten :#

Maar ik denk dat dit inderdaad beter is... Gewoon even dat standaard-component eruit gooien en zelf een scrollbar maken.

Goed :) Bedankt voor de link allesinds! ;)

Vibrasphere
%Europe/Berlin %768 %2005, 18:26
BlijBlauw,

De link die je me gaf, is een scrollbar die enkel werkt als je hem exporteert voor Flash 5 Player. Dus wanneer ik hem integreer in mijn website, moet ik ook heel men website exporteren voor Flash 5 Player.

Kga gewoon een andere tutorial of fla zoeken. Maar toch bedankt voor de moeite!

Laterzz

BlijBlauw
%Europe/Berlin %771 %2005, 18:31
ohh sorry, dan heb ik niet goed gekeken, ik zal nog even verder voor je zoeken, maar eerst eten :)

Vibrasphere
%Europe/Berlin %893 %2005, 21:26
Pff... Nu kom ik nog tot een andere vaststelling... :S

Wanneer ik mijn website open met de browser Firefox, dan kan ik enkele tekens niet typen!?

Ben momenteel een website aan het maken voor een Belgisch countrybandje The New Friends (http://www.vibrasphere.be/TheNewFriends). Als je deze opent in IE is werkt alles, behalve die stomme scrollbar dan... (Wil je de berichten in het gastenboek lezen, klik dan even weer op een ander onderdeel en dan weer gastenboek)

Maar open je hem in Firefox, dan moet je maar eens proberen je e-mailadres in te vullen. Je kan het @-teken niet typen! :s

Rare vaststelling, iemand een oplossing?

BlijBlauw
%Europe/Berlin %913 %2005, 21:55
daar is een oplossing voor: Klik op Embled en selecteer 2 t/m 5 en druk ok :)

Vibrasphere
%Europe/Berlin %921 %2005, 22:07
Tja, dat heb ik al gedaan :)

Btw, enkel de vijfde optie selecteren is al goed, hoor ;) Deze bevat de eerste vier reeds.

Vibrasphere
%Europe/Berlin %588 %2005, 14:07
Kzit nog steeds met de volgende twee problemen, geen oplossing gevonden:

1. Scrollbar past zich niet automatisch aan wanneer de tekst in het dynamisch tekstveld verandert.

2. Wanneer ik de website open in Firefox, kan ik geen @-teken typen, en punt wordt dubbelpunt, en zo van die rare dingen... Vervelend als je je e-mailadres moet typen!

Ik gebruik de scrollbar van Flash MX 2004 Pro, het UIComponent. Kheb hem een beetje geskind, werkt perfect, als ik nu eens een manier wist om de scrollbar te refreshen. Moet toch een manier zijn, he :s

Iemand die me wil en kan verder helpen?? Voorbeeld van de site vind je hier (http://www.vibrasphere.be/TheNewFriends/), kan je zelf zien wat het probleem is.

De scrollbar werkt wel als ik één maal een ander menu-onderdeel aanklik en dan weer naar het gastenboek ga. Dus wil gewoon een manier vinden om de scrollbar te refreshen, ofzo.

Vibrasphere
%Europe/Berlin %662 %2005, 15:54
Misschien met
Textfield.addlistener();Iemand een idee hoe ik met deze functie de scrollbar kan laten refreshen?


Als ik het gastenboek nu meerdere frames geef? In frame 2 zet ik het gehele gastenboek, maar zonder scrollbar. In frame 3 zet ik het gehele gastenboek, maar mét scrollbar. Als dan de tekst verandert, kan ik even terugspringen naar frame 2, zodat hij even verdwijnt en weer verschijnt met de juiste scroll-lengte!


Echt niemand die een idee heeft??? :(

BlijBlauw
%Europe/Berlin %676 %2005, 16:13
ja maakt frame 1 waar je het inlaad en dan zet je tijdelijk in je textfield 'loading' ofzo, gemaakt frame 2 waar je controleer of er nog steeds loading in staat, en anders door naar frame 3 waar je field met scrollbar staat :)

theFlashWizard
%Europe/Berlin %767 %2005, 18:24
gebruik eens loadVars ipv loadVariablesNum,
loadVariablesNum is veroudert
tutorial over loadVars kan je vinden in de actionscript tutorials sticky
damn. dit is al de 3de x dat ik dit vandaag vertel..

Vibrasphere
%Europe/Berlin %784 %2005, 18:50
Hoe doe ik die LoadVars dan in combinatie met mijn PHP??
Zo?
gbBerichten = new LoadVars();
gbBerichten.load("guestbook.php?NumLow="+NumLow+"&NumHigh="+NumHigh+"&R="+random(999));Heb dit al geprobeerd... Werkt niet :S

theFlashWizard
%Europe/Berlin %803 %2005, 19:17
je moet ook ff een onLoad gebruiken..
in die onLoad zet je dan de content in het textfield, dmv de instancename..

Vibrasphere
%Europe/Berlin %841 %2005, 20:12
Ja!! Je hebt gelijk, hoor! Nu met LoadVars(); werkt het perfect! :D

Al fel bedankt, kerel!

Enkel het signeren van het gastenboek lukt nog niet zo goed nu :S Ligt waarschijnlijk aan mij :) Zie waarschijnlijk iets over het hoofd als newbie...
gbBerichten.send("guestbook.php", "POST");
Wilt hij niet doen, dus ik dacht: ik moet de variabelen meegeven!
gbBerichten.send("guestbook.php", "POST", Naam, EMail, Bericht);
Maar nee... :(

theFlashWizard
%Europe/Berlin %853 %2005, 20:29
graag gedaan :)
zou het kunnen omdat je eerst het textfield vulde door zijn variabele naam te gebruiken ipv de instancename?

gbBerichten.send("guestbook.php&Naam="+Naam+"&EMail="+EMail+"&Bericht="+Bericht, "POST");
denk ik..
anders moet je daar ff een nieuwe post over openen.. of wat andere voorbeelden van zoeken..

Vibrasphere
%Europe/Berlin %872 %2005, 20:56
Hmm...

Het werkt nog steeds niet. Heb al wat zitten zoeken naar actionscript hierover, maar geraak er niet wijzer uit.

Als ik het echt niet vind, zal ik er een nieuw topic over starten.

FlashWizard, thanks!

Vibrasphere
%Europe/Berlin %905 %2005, 21:43
zou het kunnen omdat je eerst het textfield vulde door zijn variabele naam te gebruiken ipv de instancename?
Wat bedoel je hier eigenlijk mee, FlashWizard?

De instancenames zijn: iNaam, iBericht en iEMail
De variabelen zijn genaamd: Naam, Bericht en EMail

Maar ik moet toch de variabelen gebruiken, he, ofniet?

theFlashWizard
%Europe/Berlin %935 %2005, 22:26
nee het is veel beter om instances te gebruiken..
en als je var en instancenames invult kan het wellis helemaal fout gaan..

Vibrasphere
%Europe/Berlin %568 %2005, 13:39
Voila, kheb et eindelijk opgelost :) Moest met een "sendAndLoad" gebeuren, en ik moet ook een nieuwe LoadVars aanmake voor het verzenden van de gegevens. Bij een "send" krijg je een pop-upvenster met de gegevens in die worden verzonden. Is een kleine bug in de send, heb ik gelezen op andere forums.

EDIT: gbDump dient gewoon om de gegevens op te vangen die terug worden gestuurd door de "sendAndLoad", verder gebeurt hier niets mee.

Om andere mensen met hetzelfde probleem uit de nood te helpen, zal ik hier even et eindresultaat posten:
gbTekenen = new LoadVars();
gbDump = new LoadVars();
gbTekenen.Naam = Naam;
gbTekenen.EMail = EMail;
gbTekenen.Bericht = Bericht;
gbTekenen.Submit = "OK";
gbTekenen.sendAndLoad("guestbook.php", gbDump, "POST");
if (gbDump.loaded = true) {
_parent.gbBerichten.load("guestbook.php?NumLow="+NumLow+"&NumHigh="+NumHigh+"&R="+random(999));
_parent.gbBerichten.onLoad = function(success) {
if(success) {
_parent.uBerichten.htmlText = _parent.gbBerichten.Berichten;
gotoAndStop(2);
} else {
_parent.uBerichten.text = "Fout bij het inlezen van data!";
}
}
}
Bedankt BlijBlauw en FlashWizard voor jullie hulp en waarschijnlijk tot snel! :p