Hejsa, Jeg vil gerne kunne detecte hver gang et nyt tekstfelt bliver renderet på scenen i en keyframe via en form for listener.
En onEnterFrame scanning efter nye instanser af typen TextField er umiddelbart ikke interessant, men jeg tænkte på om man kunne redefinere TextField klassens constructor på nogen måde?
Det er da vist lidt tricky, det du er ude i der. Hvad skal du bruge det til? Ville det måske kunne løses ved lave en ny function til at lave textFields med?
Det skal bruges til at sætte indholdet af tekstfeltet ud fra enten dets instansnavn, dets varnavn eller den tekst der er sat i det på designtidspunktet (lige meget hvad for en parameter). Det er designere der placerer tekstfelterne og de har brug for layoute med WYSIWYG funktionalitet, så der er ikke mulighed for at generere tekstfelterne med kode.
Idéen er at programmet så at sige skal kunne interagere dynamisk med et design og struktur som på forhånd ikke er kendt og placere content i det på kørselstidspunktet. Det er vigtigt at det er flash' egne tekstfelter og ikke en hjemmelavet komponent fordi udviklingstiden for en livepreview component (authormode WYSIWYG) med samme antal parametre som et tekstfelt er ret lang, og de fungerer ikke optimalt...
hhmm.. Nej, det kan jeg godt se. Det lyder ret umuligt uden at loope igennem de objekter der er der. Du taler om dynamiske tekstfelter, right? Ellers kan man ihvert fald ikke.
nå, jeg har siddet og kigget lidt på det, men jeg kan ikke finde en måde at gøre det på. Meget interesant spm ellers. Sig til hvis du finder en løsning.
Jeg har tre løsningsforslag hvis der ikke er nogen elegant måde at gøre det på:
1. et JSFL script der køres inden export, som indsætter AS-kode i den keyframe tekstfelter er i. JSFL fungerer ikke ordentligt hvis der er "groups" i en flashfil, og det derfor er en kilde til fejl som er svære at finde.
2. Et movieclip/komponent der skal hives med ind i på scenen sammen med hvert tekstfelt. Desværre er det fejlbehæftet fordi det kan blive glemt.
3. En getter funktion i _global.myvar der bliver kaldt fra alle tekstfelter (fordi deres varfelt refererer til _global.myvar. Funktionen scanner scenen for tekstfelter. Tekstfelter bliver gemt i en tabel og efter første gennemløb har man deres placering og frame nummer (hovedtidslinje) cachet for fremtiden. Når man efterfølgende kalder _global.myvar, kan man nøjes med at initialisere de tekstfelter der er registreret under _currentframe. Hvis de ikke findes på scenen (fordi de ligger i et underclip længere henne ad tidslinjen), springes de bare over. Håber det var tydeligt nok.
synes selv bedst om din løsning 3, men kan som sagt ikke selv komme op med noget bedre :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.