Autor Zpráva
Deif
Profil *
Dobrý den,

mám takovou otázku. Potřeboval bych vědět jestli můžu ve flashi programově přidávat movieClipy do framu. Jde mi o to, že bych potřeboval vytvořit aplikaci která by vygenerovala animaci o N framech a v každém framu byl trochu jiný obsah. Tedy jestli existuje nějaká funkce nebo postup logicky podobný modelu

pridej(movieClip, frameNumber) ?

addchild(movieClip) znám ale nevím jestli je možné mu přiřadit číslo framu na který ho chci přidat. A s tím souvisí i druhá otázka a to je pokud by šlo to udělat jak říkám tak jestli musí ten frame být vytvořený předem v timeLine nebo jej lze taky přidat.

Moc by mi pomohlo kdyby mi někdo poradil. Předem děkuju za snahu :)
XXX
Profil
Stačí použít např. událost onEnterFrame, která volá jí přiřazenou funkci v každém framu, takže je plně ve tvé režii, co se bude v každém dalším framu dít. Můžeš přidávat MC, odstraňovat, ... Když už chceš řešit animaci programově, což je výborný nápad, dělej jí programově celou a nic nedělej přes framy na timeline...
Deif
Profil *
Díky, ale jde spíše o to že předem nevím co se na kterém framu bude přesně dít, takže nemůžu každému framu přiřadit konkrétní kód.

Abych nastínil jak by měl můj program vypadat : Na začátku si uživatel načte XML soubor, vybere algoritmus hledání a pak zadá dotaz nad tím XML souborem. A podle toho dotazu a vybraného algoritmu by se měla vygenerovat animace ( nějaký postup toho algoritmu), kterou bude možné procházet tam a zpět.


Na jiném fóru jsem narazil na nedokumentovanou funkci addFrameScript http://troyworks.com/blog/2007/09/22/as3-movieclipaddframescript/

ale ikdyž budu mít číslo framu v proměnné tak si nejsem jistý jestli to řeší můj problém. Máte někdo zkušenosti s aplikací podobného typu?
XXX
Profil
Popravdě vůbec nechápu, co potřebuješ a jak ti to má fungovat. Pokud řešíš cokoliv programově, tak to přece můžeš naprosto přizpůsobit různým vstupům, pracuješ s dynamickými daty, nepotřebuješ vědět, jaké kdy přesně budou, ale na základě toho, jaké v danou chvíli jsou generuješ různé akce, postupy, ... Možná zkus lépe vysvětlit, o co přesně se snažíš ;)
Deif
Profil *
Tak zkusím lépe popsat o co se snažím :)

Výsledná aplikace by měla vypadat takhle:

Vstup:

- XML soubor
- dotaz ve formátu XPath ( např. /bookstore/book/title )
- výběr algorimu ( na výběr by měly být 3 například TwigStack)

Výstup:

- Krokovatelná animace postupu vybraného algoritmu (tzn. N framů na kterých budu vypisovat co se děje v zásobnících a ve streamech algoritmu)

Má to sloužit jako výukový program pro snadnější pochopení algoritmu s možností postupného krokování a vizualizace stavu výstupních a pomocných datových struktur. Já jsem se na to díval tak, že pokud bych ty algoritmy rozdělil do framů a postupným procházením je teprve vykonával tak by to bylo složité. Proto mě napadlo, že bych ty algoritmy nechal "vcelku" akorát do nich naimlementoval funkce které by mi ukládaly do pomocných datových struktur mezivýsledky a ty bych pak vygeneroval do animce.

Takže problémy které díky tomu řeším jsou tyto:

- délka animace závisí na velikosti vstupního XML a složitosti dotazu
- díky proměnné délce animace taky nastává problém s generováním animace tzn. nevím na kterém konkrétním framu bude algoritmus na konkrétním řádku
- proč jsem zvolil metodu "nejdříve proběhne algoritmus a pak se vygeneruje jeho postup" a ne "v aktulním framu vygeneruju aktuální obsah" je že nevím jak bych ve druhé metodě postupoval při krokování směrem vzad uprostřed animace, kdy ještě nedoběhla do konce.Protože nevím jak se vracet v tom vyhledávacím algoritmu. Tuším že tady bude ta podstata toho co mi dělá problém pochopit :)

Jestli se ještě nechápeme, tak mi zkus přiblížit konkétněji místo, ve kterém se nechápeme, díky :)
XXX
Profil
Asi tě pomalu začínám chápát ;)

Pokud jsem to teda pochopil celé dobře a myslím si, že teď už ano, připadá mi celý postup jednoduchý. Myslím, že v tom hledáš zbytečně něco složitého, přitom je postup jednoduchý.

Nedívej se na to tak, že budeš postupně vykreslovat každý frame v každém kroku algoritmu a když se budeš chtít vrátit o krok zpět, hned se vrátíš a nebudeš pokračovat dále a vznikne ti problém. Nejdříve projeď celý algoritmus od začátku do konce a v každém kroku si vytvoř nový MC, jehož obsahem budou data algoritmu v daném kroku. Algoritmus bude mít např. 30kroků, tak vytvoříš 30 movieClipů, každý bude znázorňovat jeden krok algoritmu, bude to tedy zároveň jakoby jeden frame animace. Tyto MC si ulož např. do pole, aby se ti potom jednoduše projížděly. Všechny tyto movieClipy skryješ, buď nastavíš vlastnost visible = false nebo je zatím vůbec nepřidáš do DisplayListu. V tuto chvíli máš vše připravené a teprve teď přichází na řadu fáze projíždění algoritmu a přehrávání "animace". Budeš na prvním kroku algoritmu, zobrazíš první MC, půjdeš o krok dál, skryješ první MC, zobrazíš druhý, budeš se chtít vrátit o krok zpět, skryješ druhý MC, zobrazíš první, klidně můžeš rovnou skočit na desátý nebo poslední snímek, ... Všechny "framy" máš připravené, teď už nic negeneruješ, jen projíždíš ;)

Pokud jsme se tedy pochopili správně, mělo by být tohle tvoje řešení, pokud ne, můžeme to zkusit znova ;)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0