Toon posts:

[Flash 5] Dynamische hoogte van een textfield mogenlijk?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met een probleem en krijg het maar niet opgelost.

Ik wil dat de hoogte van mijn textfield veranderd naar de hoeveelheid text die hij moet laten zien. Ik laad de inhoud van het textfield uit *.txt bestanden. De lengte van die teksten is dus dynamisch. Ik heb een wit vlakje als movieclip achter de text gezet, die de hoogte van de text aan moet nemen. De breedte van het textfield en de movieclip staan vast.

Wat ik al heb gedaan: Ik heb het textfield in een movieclip gezet waardoor ik de _height van het textfield op kan vragen. Het enige wat dus niet lukt, is het variabel maken van de hoogte van het textfield. Is dit wel mogenlijk in Flash 5?

Hier werkt het dus niet:
Afbeeldingslocatie: http://www.student.tue.nl/H/H.P.J.Vermeulen/1.jpg

Zo zou het dus moeten worden (oranje balkje evenlang als de tekst):
Afbeeldingslocatie: http://www.student.tue.nl/H/H.P.J.Vermeulen/2.jpg

[ Voor 20% gewijzigd door Verwijderd op 07-05-2003 16:37 ]


Verwijderd

Ja, dit kan in flash 5.
Wel met iets meer moeite dan in 6; je kan immers niet zomaar de hoogte en breedte van het textveld opvragen. Daar moet je iets meer rekenwerk voor verrichten.

Ik wijs je even de goede richting in met :

http://www.swfx.org/stringwidthcalculator/index.jsp

Verwijderd

Topicstarter
Verwijderd schreef op 07 May 2003 @ 17:36:
Ja, dit kan in flash 5.
Wel met iets meer moeite dan in 6; je kan immers niet zomaar de hoogte en breedte van het textveld opvragen. Daar moet je iets meer rekenwerk voor verrichten.

Ik wijs je even de goede richting in met :

http://www.swfx.org/stringwidthcalculator/index.jsp
*Oef* .. Dat is wel wat ingewikkelder dan ik had gehoopt ;), maar het ziet er veelbelovend uit. Ik heb er net even naar gekeken, en ik denk dat het hiermee wel gaat lukken. Even snel wat eten en dan weer hard verder scripten (8> Ik laat nog even weten hoe het afloopt.

Mijn dank is groot _/-\o_

Verwijderd

Topicstarter
Zo! .. Het is gelukt :)

Zie hier: mijn rauwe testje
Hij is niet echt nauwkeurig, en houd nog geen rekening met "enters".

Ik wou dit project helemaal dynamisch maken, maar omdat dit toch vrij omslachtig blijkt, ga ik misschien gedeeltelijk weer over op het ouderwetse handwerk :9 Ik ben in ieder geval weer wat kennis rijker :)

Nogmaals _/-\o_ voor B-Top! (en stiekum ook een beetje voor Seraph :Y))

  • inquestos
  • Registratie: November 2001
  • Laatst online: 08:31
Verwijderd schreef op 07 May 2003 @ 14:09:


Hier werkt het dus niet:
[afbeelding]

Zo zou het dus moeten worden (oranje balkje evenlang als de tekst):
[afbeelding]
offtopic:
Mag ik vragen welk lettertype dat is? :) Ik zie het regelmatig, maar weet het nog steeds niet...

Fotografie: | Flickr | Canon 5DII + 20mm + 35mm + 50mm + 100mm || Hardlopen: Strava PR 5km: 20:26 10km: 44:35 HM 1:39:58


  • XangadiX
  • Registratie: Oktober 2000
  • Laatst online: 17-06 09:56

XangadiX

trepanatie is zóó kinderachtig

inquestos schreef op 07 mei 2003 @ 22:09:
[...]


offtopic:
Mag ik vragen welk lettertype dat is? :) Ik zie het regelmatig, maar weet het nog steeds niet...
ik denk dat ie hier vandaan komt http://www.miniml.com

Stoer; Marduq


Verwijderd

Topicstarter
XangadiX schreef op 07 May 2003 @ 22:44:
[...]
ik denk dat ie hier vandaan komt http://www.miniml.com
Neej hiervandaan: http://www.elastic-design.net/
Ze heten volgens mij pixelfonts, of bitmapfonts.

  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 08-07 17:00

GrimaceODespair

eens een tettenman, altijd ...

Het ziet er op zich cool uit, ware het niet dat er zo te merken achter de schermen idd flink wat overhead waart. Wsch valt daar wel een deel van te optimaliseren, maar toch een vraagje: waarom wil je eigenlijk in de eerste plaats tekstvelden van een dynamische grootte aanmaken? Ik bedoel: Je hebt scherm van x bij y, en je weet wsch waar je tekst komt en hoeveel plaats die maximaal kan innemen (daar moet immers de rest van de GUI op berekend zijn). Waarom zou je in dat geval dynamisch gaan resizen? Het enige dat ik kan bedenken is om die border strak rond de tekst te spannen.

Wat is trouwens je conclusie? Terug naar het handwerk?

/me heeft vandaag overigens weer wat opgestoken op GoT, dankzij de immer alerte B-top _/-\o_

Wij onderbreken deze thread voor reclame:
http://kalders.be


Verwijderd

Topicstarter
GrimaceODespair schreef op 08 May 2003 @ 00:24:
waarom wil je eigenlijk in de eerste plaats tekstvelden van een dynamische grootte aanmaken? Ik bedoel: Je hebt scherm van x bij y, en je weet wsch waar je tekst komt en hoeveel plaats die maximaal kan innemen (daar moet immers de rest van de GUI op berekend zijn). Waarom zou je in dat geval dynamisch gaan resizen? Het enige dat ik kan bedenken is om die border strak rond de tekst te spannen./me heeft vandaag overigens weer wat opgestoken op GoT, dankzij de immer alerte B-top _/-\o_
Ik ben bezig aan een cdrom, waar ongeveer 200 verschillende stukjes tekst op moeten komen. Om die stukjes tekst variabel te houden, wil ik ze dus als .txt bestanden op de cd zetten (zodat er een nieuwe cd gebrand kan worden met aangepaste .txt bestandjes). En inderdaad het ging erom dat het witte vlak achter de tekst netjes zou aansluiten bij de verschillende hoeveelheden van tekst.
GrimaceODespair schreef op 08 May 2003 @ 00:24:
Wat is trouwens je conclusie? Terug naar het handwerk?
Ja. Ik vond het voordeel van het aansluitende witte vlakje niet opwegen tegen de enorme rekenkracht die gebruikt word om dat te bereiken. Ik kan dus kiezen: Voor alle stukjes tekst één vaste grote van het witte vlak, of in een array voor ieder tekstje handmatig een afmeting invoeren.

Ik moet zeggen dat ik het zelf veel leuker vind om een lang en ingewikkeld script te maken :) Ik hou wel van een beetje prutsen, en zo leer je nog eens wat :9 .. Maar in dit geval is het een beetje veel rekenwerk voor het kleine resultaat.

  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 08-07 17:00

GrimaceODespair

eens een tettenman, altijd ...

Volgende uitdaging: een preloader om op voorhand alle groottes te berekenen ;)

Wij onderbreken deze thread voor reclame:
http://kalders.be


Verwijderd

Verwijderd schreef op 08 May 2003 @ 02:19:
[...]

Ik ben bezig aan een cdrom, waar ongeveer 200 verschillende stukjes tekst op moeten komen. Om die stukjes tekst variabel te houden, wil ik ze dus als .txt bestanden op de cd zetten (zodat er een nieuwe cd gebrand kan worden met aangepaste .txt bestandjes). En inderdaad het ging erom dat het witte vlak achter de tekst netjes zou aansluiten bij de verschillende hoeveelheden van tekst.


[...]

Ja. Ik vond het voordeel van het aansluitende witte vlakje niet opwegen tegen de enorme rekenkracht die gebruikt word om dat te bereiken. Ik kan dus kiezen: Voor alle stukjes tekst één vaste grote van het witte vlak, of in een array voor ieder tekstje handmatig een afmeting invoeren.

Ik moet zeggen dat ik het zelf veel leuker vind om een lang en ingewikkeld script te maken :) Ik hou wel van een beetje prutsen, en zo leer je nog eens wat :9 .. Maar in dit geval is het een beetje veel rekenwerk voor het kleine resultaat.
Hej, als dit op cd-rom gaat, waarom zou je dan niet met 6 werken?

De rekenkracht die die stringwidth gebruikt valt best mee maar zoals ik het nu bekijk voor jij dat elk frame uit. Dan ga je dat soort loops voelen.
Daarnaast is het geen slecht idee om de ouput swf eens door flasm te gooien.

  • tie-rep
  • Registratie: Oktober 2001
  • Laatst online: 19-02 15:56

tie-rep

nu met ir. !

Ik heb een tijdje terug ook hetzelfde probleem gehad.
Omdat je alleen de hoogte wilt hebben is het best simpel te doen.

De oplossing:
je laadt de dynamische text in een 1-regel-textveld met dezelfde breedte als je textveld waar het uiteindelijk in moet komen.
Nu kan je dmv de scroll parameter opvragen hoeveel regels er te scrollen zijn. Je weet hierdoor dus het aantal regels van je dynamische text.

Even uitrekenen: aantal regels * regelafstand in je uiteindelijke textveld = de hoogte van je oranje balkje.

Erg simpel maar werkt prima :)
Wanneer je de textbreedte nodig hebt, kan je idd de stringcalculator gebruiken.

  • GrimaceODespair
  • Registratie: December 2002
  • Laatst online: 08-07 17:00

GrimaceODespair

eens een tettenman, altijd ...

tie-rep schreef op 08 mei 2003 @ 14:56:
Nu kan je dmv de scroll parameter opvragen hoeveel regels er te scrollen zijn. Je weet hierdoor dus het aantal regels van je dynamische text.
Geniaal
offtopic:
... wat een verrekte leerzaam topic B)

Wij onderbreken deze thread voor reclame:
http://kalders.be


Verwijderd

Topicstarter
Verwijderd schreef op 08 May 2003 @ 10:13:
Hej, als dit op cd-rom gaat, waarom zou je dan niet met 6 werken?
Ik heb Flash MX nooit echt gebruikt, ik weet niet of het erg verschild van Flash 5, maar versie 5 voelt nog wat vertrouwder aan :)
Verwijderd schreef op 08 May 2003 @ 10:13:
De rekenkracht die die stringwidth gebruikt valt best mee maar zoals ik het nu bekijk voor jij dat elk frame uit. Dan ga je dat soort loops voelen.
Daarnaast is het geen slecht idee om de ouput swf eens door flasm te gooien.
Voor de mensen die niet weten wat flasm is (zoals ik) hier een stukje uitleg:
flasm is a command line assembler/disassembler of flash actionscript bytecode.
flasm 1.41 disassembles your entire SWF including all the timelines, onMovieClip events and button events. After that you are expected to do some optimizations on the disassembled code by hand. flasm replaces then all actions in the original swf with your optimized content. flasm fully supports flash MX.
Source
Lijkt me zeker de moeite waard om even naar te kijken. _/-\o_ voor B-Top :)
GrimaceODespair schreef op 08 May 2003 @ 15:27:
Geniaal
offtopic:
... wat een verrekte leerzaam topic B)
Je haalt me de woorden uit de mond! Ik ga snel met de trein van 16:38 vanuit Eindhoven weer richting Nijmegen, om toch weer even verder te spelen met het flash actionscript :9 Heerlijk topic dit, al zeg ik het zelf.

edit:
Hmm heb de trein al gemist dat word de volgende dan maar :)

[ Voor 7% gewijzigd door Verwijderd op 08-05-2003 16:33 ]


Verwijderd

tie-rep schreef op 08 May 2003 @ 14:56:
Ik heb een tijdje terug ook hetzelfde probleem gehad.
Omdat je alleen de hoogte wilt hebben is het best simpel te doen.

De oplossing:
je laadt de dynamische text in een 1-regel-textveld met dezelfde breedte als je textveld waar het uiteindelijk in moet komen.
Nu kan je dmv de scroll parameter opvragen hoeveel regels er te scrollen zijn. Je weet hierdoor dus het aantal regels van je dynamische text.

Even uitrekenen: aantal regels * regelafstand in je uiteindelijke textveld = de hoogte van je oranje balkje.

Erg simpel maar werkt prima :)
Wanneer je de textbreedte nodig hebt, kan je idd de stringcalculator gebruiken.
Good one :)

Verwijderd

Verwijderd schreef op 08 May 2003 @ 16:26:
[...]

Ik heb Flash MX nooit echt gebruikt, ik weet niet of het erg verschild van Flash 5, maar versie 5 voelt nog wat vertrouwder aan :)


[...]
Ik zou in dit project (waarbij je dus veel met text werkt) toch zeker even een oogje op mx werpen, de textfield object&methods maken een aantal dingen toch echt een stuk makkelijker (eigenlijk maakt heel MX een heleboel dingen een stuk makkelijker, maar ok). :)
Pagina: 1