jeg har stødt på et problem som er noget så simpelt og alligevel så kan jeg ik hitte ud af det -
prøver at få et text felt som jeg tilgår via getChild
til at scalere - ud fra et anchor point som jeg selv definere så som center scaling i stedet for at blot scalere fra 0 punktet som det gør nu
min kode er fail og ser sådan her ud :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import fl.events.SliderEvent; slider_obj.addEventListener(SliderEvent.CHANGE, onSlide); var originX:Number=this.getChildAt(0).x; function onSlide(e:Event) { var sizeDiff:Number=this.getChildAt(0).width; this.getChildAt(0).scaleX=slider_obj.value; sizeDiff=this.getChildAt(0).width-sizeDiff; trace(sizeDiff); this.getChildAt(0).x = originX-(sizeDiff/2) } onSlide(null); |
preview:
8 kommentarer
http://thonbo.com/test/sizeTest.fla
evt. læg textfield i mc m. reg. point center
jeg har en millionen text felter jeg skal gøre det med derfor jeg tager de gennem displaylist - men ja jeg ku godt lave et sprite in runchime
http://www.oscartrelles.com/archives/dynamic_movieclip_registration_with...
burde vel virke på textfields også, såfremt det defineres.
ok - løsning var den mest crasy jeg nogen sinde har regnet mig frem til -
mit udgangs punkt med at bare trække halvdelen af width fra når jeg scaler op og ned var som sådan fin nok selvom det ik virkede - så efter jeg har kuglegravet alt omlæggende matematik og lagt det ind containers fandt jeg ved en fejl frem til at løsning så sådan her ud selvom det ikke giver noget logisk menig
some brain please explain!
på y aksen virker det fint men på x aksen skal den ha -*1.52 WTF *!)"&%#=!*
*edit*
det lader til 1.52 er dynamisk alt efter størrelsen så jeg arbejder på at finde en formel der kan gengive den rette scaleVærdi omregnet fra den egen width and height
Du har ret, Thonbo - det virker umådeligt ulogisk, samt bare forkert! Og ak ja, mennesker ved sgutte engang 4%, resten skal der ledes efter i de sorte huller - men du har vel ikke en fla, der åbenbarer - din påstand?
jo jo -
http://thonbo.com/test/sizeTest.html
http://thonbo.com/test/sizeTest.fla
og lige prøvet med getBounds og getRect og transform.matrix.pixelBounds.width
og nyt matrix object med tx og ty i stedet for x og y - same result
og textWidth er ikke tilgængelig på StaticTextfield
StaticText er noget værre noget rent positionsmæssigt. Har kløet mig til blods bag ørene.
Men det kan lade sig gøre at transformere dit StaticText til TextField! Hm, hmm.
Det burde gøre det muligt at skalere normalt.
I Library skal den font, du bruger, embeddes.
Hvis du på stage fx har en instance af et StaticText med fonten fra Library, kan man pludselig gøre således:
var st:TextField = TextField(getChildAt(0)); // !!!!
Vær dog opmærksom på, at TextField.text indeholder en mellemrumskarakter i slutningen af strengen.
Eksemplet herunder forudsætter
A: en en embedded font i Library (ActionScript og export in first frame.),
B: Slider Component på stage (instance name = "slider".
C: og en enkel instance af StaticText der bruger embbeded fonten i Library. Left Justified.
D: kode placeres på frame 1.
Link til flash CS3 eksempel StaticText_cs3.fla