Autor | Zpráva | ||
---|---|---|---|
laik Profil * |
#1 · Zasláno: 28. 12. 2005, 20:56:11
Chtěl bych ve Flashi udělat blikající text. Představoval bych si to tak, že by se po načtení swf souboru spustil "časovač" a po cca 3 vteřinách by se změnila barva textu (který má blikat). Po dalších 3 vteřinách by se barva změnila zase na původní hodnotu atd. Vím, jak to udělat v JavaScriptu, ale ve Flashi nevím. Netuším, jak nastavit "časovač" a jak pomocí skriptu změnit barvu textu. Dále je otázka, jestli je lepší text (jednalo by se o 2 slova) převést na křivky nebo ho mít jako dynamický text.
|
||
FlashManiac Profil * |
#2 · Zasláno: 28. 12. 2005, 21:20:05
Je jedno jestli převedeš text na křivky nebo ho budeš přebarvovat v dynamickém poli. Pokud ale text nebudeš nějak často měnit nebo do něj nebudeš z praměnných neco dynamicky načítat doporučuju si text převést na Movie Clip(líp se s tím dělá)...
Takže dynamické nebo statické pole převedeš na MC, přiřadíš mu instanci a pro změnu barvy napíšeš
Pro časovač si musíš zavést dvě proměnné: var _root.cas:Number; no tohle by mělo fungovat.... |
||
laik Profil * |
#3 · Zasláno: 29. 12. 2005, 00:38:58
Dynamicku změnu barvy textu jsem zvládl, ale ten časovač je na mě bohužel příliš složitý.
Zeptám se tedy jinak. Mám jednoduchou animaci, která má 20 snímků. V animaci mám text, který jsem změnil na MovieClip a nazval ho "text1". Text je modrý a já chci, aby se od snímku č. 10 změnil na červený. Do prvního snímku jsem vložil toto: var barva = new Color(text1); Do Movieclipu "text1" jsem vložil tyto příkazy: onClipEvent(load) { i = 0; } onClipEvent(enterFrame) { i++; if(i >= 10) { barva.setRGB(0xFF0000); i = 0; } } Proč to nefunguje? |
||
FlashManiac Profil |
#4 · Zasláno: 29. 12. 2005, 13:55:03
tohle je uplne zbytecný to psat takhle.. pokud to chces dělat takto tak to bude lepší zmenit barvu přímým nastavením.. přes klíčové snímky.. jak máš ten MC s textem,tak si najed na jeho časovou osu a do 10.snimku si natáhni frames, pak na 11.snimek hoď klíčový snímek a zase to natáhni do 20.snimku. Pak už si jen v té druhé polovině změň barvu textu...
Proč ti nefunguje: nemás nadeklarovanou proměnnou třídy Color: pokud se ti nelíbí můj předešlý návrh zkus tohle: onClipEvent (load) { funguje to... ale nedoporučuju mít velký framerate dokumentu, jinak si budeš muset zvětšit interval |
||
Časová prodleva: 7 dní
|
|||
Kajdžas Profil * |
#5 · Zasláno: 5. 1. 2006, 05:29:27
onClipEvent (load) {
var i:Number = 0; var interval:Number=10; var bylo:Boolean = false; } onClipEvent (enterFrame) { i++; if (i>=interval && bylo==false) { barva = new Color(this); barva.setRGB(0xFF0000); i = 0; bylo=true; }else if(i>=interval && bylo==true){ barva = new Color(this); barva.setRGB(0x0000FF); i = 0; bylo=false; } } jde to udělat ať to přecházi plynule i tímto AS? Jinak první příklad se mě taky nepodařilo rozběhnout...asi někde dělám chybu:( |
||
FlashManiac Profil |
#6 · Zasláno: 6. 1. 2006, 11:24:56
No jít by to mělo, ale je nutné si najít nějaký vztah mezi proměnnou(tato se bude měnit s EnterFrame, když má dojít ke změně) a mezi hexakódem barvy. Pak si jenom zadeklaruješ, interval kdy se má barva začít a končit měnit a mělo b yto být.Samozřejmě skript výše by potřeboval nějaké úpravy,ale princip ne v důsledku vlastně stejný..
Jinak nevím, jakto že ti ten můj skript nejde.. mě to funguje bez problémů. Nevím ale, jestli jsi ten kód nedával do _root pokud ano tak tam to nepojede, protože není zacílený MC(skript neví jaký MC má měnit), pokud to ale vložíš do MC, tak to musí fungovat. |
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0