Autor Zpráva
moltom
Profil *
Zdravim, mám nasledovný problém.

Do flashu načítam do dynamických textových polí text z externého .txt súboru takto:

myLoadVariables_lv = new LoadVars();
_root.onLoad = function() {
myLoadVariables_lv.load("data.txt");
};


myLoadVariables_lv.onLoad = function(success:Boolean) {
workshop_title.text = myLoadVariables_lv["workshop_title"];
workshop1.text = myLoadVariables_lv["workshop1"];
workshop2.text = myLoadVariables_lv["workshop2"];
workshop3.text = myLoadVariables_lv["workshop3"];
};

Všetko je OK. Keď ale toto publishnem ako swf a načítam do ďalšieho flashu pomocou loadMovie textové okna ostanú prázdne. Rovnaký problém nastane ak daný swf vložím ako movieClip do toho flashu kam sa má načítať, dám ho exportovať pre actionScript a načítam potom pomocou attachMovie...

Ďakujem...
XXX
Profil
zkus pridat na prvni radek tohohle skriptu:

this._lockroot = true;
moltom
Profil *
Žiaľ nefunguje,

už som skúšal zmeniť cesty aj v "_root.onLoad = function()" aj cestu k tým dynamickým textovým poliam tak aby boli až za _root.movie_clip_loader_mc...

zatiaľ nič.

Chcem tam tie texty načítať z externého súboru preto, aby sa daly ľahko meniť kvôli prekladu do iných jazykov.
dredie
Profil *
tohle ti fungovat nebude, resil jsem podobny problem - myslim ze je to zpusobeno pipeline flashe - nejdriv se precte skript, pak se renderuje scena... v okamziku, kdy se cte skript odkazujici na textova pole, tyto jeste nejsou vyrenderovana a neexistuji na scene (mozna je to nesmysl, ale tak nejak se to proste chova). Podobny problem je i u onLoadComplete udalosti listeneru pri nacitani swf souboru pres MCL - v tomto pripade se muzes pri udalosti onLoadComplete odkazovat na _level, do ktereho soubor nacitas, ale uz ne na to co je vevnitr, to proste nefunguje. Zkus ten skript dat na druhy frame toho souboru ktery nacitas, popripade muzes funkce pro nacitani promennych dat do hlavniho souboru a do externiho souboru pouze jejich volani, to funguje bez problemu (na nic jineho jsem zatim neprisel).

D.
moltom
Profil *
Dík za radu, skúšal som ten posun na druhý frame na osi ale ani to nešlo.

Správa sa to divne:

Na hlavnej časovej osi, do ktorej načítam pomocou attachMovie dalšie movieClipy chcem aby sa hneď pri načítaní celého swf natiahol prvý mc:

_root.movie_loader_mc.attachMovie("eduwear",eduwear_mc,1);

Toto funguje bezproblémov, dokonca natiahne do textových polí dáta z externého .txt.
Ak však tlačidlom na ploche nechám do movie_loader_mc načítať znovu ten istý mc (eduwear) tak už je prázdny...
Ak presuniem skript do druhého framu na časovej osi (pridám stop a pre textové polia nechám kľúčový snímok len v prvom frame) tak sa dáta nenačítajú ani pri tom úvodnom načítaní celého swf...

PS: ako zavolám fukciu na hlavnej osi z externých načítaných súborov (načítaných cez attachMovie)?

Ak na niečo nové dojdem tak sa samozrejme ozvem.
dredie
Profil *
moltom - pockej pockej neni attachMovie nahodou pro nacitani z knihovny a ne z externiho souboru? Resp. ja jsek attachMovie k nacitani externich dat nikdy nepouzival (pouze pro pripojeni objektu, ktere mam v knihovne nastavene na export for action script) a uprimne receno myslim, ze tato funkce k tomu ani neslouzi (k nacitani externich dat) - pouzil bych bud metodu loadMovie k objektu movieClipu (treba vytvorit si prazdny movieCLip a do toho to nacist), nebo jeste lepe pouzit MovieClipLoader tridu - pres ni mi nacitani externich dat funguje tim stylem, ze funkci loadVars definuju na v hlavnim souboru (i event onLoad, ve kterem definuju zobrazeni textu v textovych polich nacitaneho souboru) a tuto funkci volam z nacitaneho souboru (viz nize) - takto to funguje zarucene.

Jinak obecne - funkci volas tak jakobys adresoval jakykoli objekt, tudiz pokud treba chces zavolat z externe nacitaneho souboru funkci na hlavni casove ose, das proste do toho externiho souboru _level0.myFunction();, naopak to funguje taky, ale znova rikam v tvem pripade si nejsem tim attachMovie zcela jisty. Kazdopadne attachMovie vraci jako hodnotu referenci na pripojeny movieClip, takze nejjednodussi varianta je vytvorit promennou, do ktere se ta reference ulozi:

var myMclReference:MovieClip = this.attachMovie(...); (pokud si promennou pak vytracujes, bude mit hodnotu neco jako _level0.myMc)

potom muzes zavolat funkci myMclReference.myFunction(); Ale rozhodne bych pouvazoval o movieClipLoaderu, je pro toto primo stvoren.

Nakonec podotykam, ze nejvetsi problemy ve flashi, ktere jsem zatim kdy mel, bylo prave nacitani a predevsim zobrazovani textu v textovych polich - flash se v tomhle chova dost podezrele, hlavne pokud pouzivas sdilene fonty - napriklad jsem narazil na problem, ze pokud jsem font exportoval v urcite velikosti, text se nezobrazil pokud jsem v textovem poli nenastavil jinou velikost pisma, nekdy to funguje presne naopak... nekdy je potreba pripojit fonty (ale to zase ma problem pokud pouzivas text formatovany s html tagy), proste bordel. Pokud nekdo zna tyto zakonitosti, tak pliiiz sem s nimi!

D.
moltom
Profil *
Dik za info,

sorry za tú nezrovnalosť v mojom príspevku - tie movie clipy načítam samozrejme z knižnice (po zaškrtnutí export for Action Script). LoadMovie som častejšie používal už pri iných projektoch, ale kvôli veľkosti (či skôr malosti) som mc čo ktoré sa majú načítať v tomto prípade nechal v hlavnom flashi.

Tak skúsim vyrobiť z tých mc ktoré exportujem pre AS samostanté swf a načítať ich pomocou loadMovie. Uvidíme ako sa to bude správať potom.

Každopádne dík za rady a 100% súhlasím s občasným podivným chovaním fontov a textu všeobecne vo Flashi. Niekey z toho leziem po stenách. (Napríklad označil som text zo statického txt poľa dal ho kopírovať a pokúsil vložiť do MS Wordu - bez šancí...proste to nešlo ani za boha. Podarilo sa mi ho však vložiť do TextEditu na OSX - niečo ako notepad) Všeobecne sa mi zdá že verzia pre OS X je dosť odfláknutá...
dredie
Profil *
moltom - takze pokud to dobre chapu, mas movie clipy v knihovne a v tech movie clipech mas textova pole do kterych nacitas externi text? V tom pripade bych zkusil nasledovne:

na 1. frame pouze deklaruj loadVars a udelej akci load (ale NE onLoad), na treba 5. frame dej veskery ostatni skript a za attachMovie metody dej skript na zobrazeni textu v textovych polich, tohle by melo fungovat - hlava se ti pohne na 5. frame az v okamziku, kdy se provede skript ve framu 1 - tudiz budes mit jistotu, ze se text nacetl.

D.
moltom
Profil *
Dík za rady dredie,

predbežne som to spravil tak že som prerobil predtým z knižnice načítavané MC na samostatné swf a tieto načítam pomocou loadMovie. Celý skript, kde sa načítavajú údaje z externého textu som dal na druhý frame a bolo to ok. Teda ešte som odstránil onLoad a nechal len

myLoadVariables_lv.load("data.txt");

a samozrejme pridal stop();

Na to druhé tebou popisované riešenie s ponechaním mc v knižnici si zatiaľ netrúfam. Ale zatiaľ mi to vyhovuje tak ako to je.
moltom
Profil *
Tak tu je predbežný výsledok:

www.fns.uniba.sk/eduwear

Jediný problém je, že nadpisy v načítaných Movie Clipoch sú v Safari na OS X v pohode, ale akonáhle ich pozriem na XP (MYIE) tak nie sú aliasované. Jedná sa o font HLEVETICA CE, Bold s Filtrom Drop Shadow a zapnutým anti-alias for readibility...skúsim zmeniť nastavenie anti aliasingu toho dynamického txt poľa vo flashi čo to spraví...
dredie
Profil *
moltom: zkus embed fonts, text ve flashi se chova strasne podivne - takze zkus s embed a bez, normalni text a html text. Jedna z techto kombinaci funguje.... mysim ze co se tyce dynamickeho pole, tak normalni text vyzaduje embed fonts, ale html text s embed fonts hapruje. Zkus to a uvidis.

D.
Toto téma je uzamčeno. Odpověď nelze zaslat.