Autor Zpráva
dredie
Profil *
HI all,
dalsi lamackej dotaz/problem.... checknete nasledujici skript:

//tvorba kontejneru pro nacitani externich dat, kontejneru pro naslouchani dat o prubehu nacitani a jeho registrace
var myMCL1:MovieClipLoader = new MovieClipLoader();
var myMCL2:MovieClipLoader = new MovieClipLoader();

var myListener1:Object = new Object();
var myListener2:Object = new Object();

myMCL1.addListener(myListener1);
myMCL2.addListener(myListener2);

//tvorba load vars pro nacteni externiho TXT soubboru
var myLV1:LoadVars = new LoadVars();

//synamicke nacteni preloaderu z knihovny, jejich vypozicovani a nastaveni
_root.attachMovie("preloader", "preloader1", 50);
_root.attachMovie("preloader", "preloader2", 51);
_root.preloader1._x = 500;
_root.preloader1._y = 400;
_root.preloader2._x = 700;
_root.preloader2._y = 200;
_root.preloader1._visible = false;
_root.preloader2._visible = false;

//nastaveni promennych a funkce pro kotrolu uspesnosti nacteni externich klipu
var navigationLoaded:Boolean = false;
var titleLoaded:Boolean = false;
var textLoaded:Boolean = false;

function loadedCheck() {
if (navigationLoaded && titleLoaded) {
_level5.play();
_level4.play();
_level4.pokus.text = "blablabla";
} else {
_level5.stop();
_level4.stop();
}
}

//funkce pro zobrazeni a skryti preloaderu a pro spousteni loadedCheck
myListener1.onLoadProgress = function (target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
_root.preloader1._visible = true;
var preloadPercent:Number = Math.round((bytesLoaded/bytesTotal)*100);
_root.preloader1.gotoAndStop(preloadPercent);
}
myListener2.onLoadProgress = function (target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
_root.preloader2._visible = true;
var preloadPercent:Number = Math.round((bytesLoaded/bytesTotal)*100);
_root.preloader2.gotoAndStop(preloadPercent);
}
myListener1.onLoadComplete = function (target_MC:MovieClip) {
_root.preloader1._visible = false;
navigationLoaded = true;
loadedCheck();
}
myListener2.onLoadComplete = function (target_MC:MovieClip) {
_root.preloader2._visible = false;
titleLoaded = true;
loadedCheck();
}

// funkce pro zobrazeni textu z externiho textoveho souboru
myLV1.onLoad = function (success:Boolean) {
if (success == true) {
_level4.titleAnime.titleDscrAbstractText.titleDscrAbstractTextField. text = myLV1.subjectText;
_level4.titleAnime.titleDscrAbstractText.titleDscrAbstractTextField. text = myLV1.abstractText;
}
}

//nacteni navigace, hlavicky a textu
myMCL1.loadClip("contents/navigation.swf", 5);
myMCL2.loadClip("contents/topic1/slide1title.swf", 4)
myLV1.load("contents/topic1/topic1info.txt");


Klipy se nactou a spusti se tak jak maji (tzn. az jsou nactene oba), stejne tak se nactou i promenne z textaku (overeno pomoci trace). Problem je v tom, ze nejsem schopny adresovat nic uvnitr jakehokoli nacteneho klipu, tzn. ze se mi nezobrazuje zadny text v tech trech polich, na kterych to zkousim. Zkousel jsem i volani fuknci (trace), zvlastni je, ze z nacteneho klipu jsem shcopny zavolat funkci na _level0, ale naopak to proste ne a ne fungovat.

Pritom jsem schopny zastavit, rozjet atp. napr. cely _level4 a to i kdyz jsem vynechal preloadery a vytracoval getNextHighestDept, kdy mi to vyblilo 0 a ne 6... btw.: jak je mozne, ze nejvyssi volny level je 0 kdyz _level0 je adresace hlavniho klipu, ve kterem je skript uvedeny vyse?

A uplne nejdivnejsi na tom je, ze v jinym projektu to mam udelany podobne a funguje to.... nejsem schopny prijit na to, kde je chyba a uz jsem dost znechucenej.... proste mi to nedava smysl! pradite nekdo pls???
XXX
Profil
jsem zvedav, jestli ti tohle bude nekdo cist :-D
dredie
Profil *
jo asi to redukuju na neco kratsiho :)

taakze: jakym zpusobem se da zobrazit dynamicky nacteny text nacteny pomoci loadVars v textovem poli ktere existuje v dynamicky nactenem klipu nactenem pomoci loadClip?
XXX
Profil
no nactes to dynamicky primo do toho externiho clipu a ten pak cely nactes do tvoji cilove animace...
dredie
Profil *
vyzkousim :)
dredie
Profil *
tohle funguje, nicmene mi to bohuzel az tak neresi situaci..... potrebuju byt schopny z toho hlavniho klipu ( kam vsechno nacitam) pomoci actionscriptu zadat text do nacteneho klipu. Akorat nejsem schopnej ten nactenej klip adresovat a nevim proc.....???? Treba tohle:

1. mam klip, napr. master.swf. Tento klip je prazdny az na script na 1st frame main timeline.

2. mam klip jiny, treba pokus.swf, v nem se nachazi MCL textContainer, ve kterem je pritomno dynamicke textove pole myTextField. soubor publikuju do stejne slozky jako master.swf

3. v master.swf je nasledujici skript:

var myMCL:MovieClipLoader = new MovieClipLoader();

myMCL.onLoadComplete = function {
_level4.textContainer.myTextField.text = "blabla";
}

myMCL.loadClip ("pokus.swf", 4);


Zadny text se mi bohuzel nezobrazi.... nekde mi pokulhava moje logika, ale jsem asi moc blbej na to, abych to pobral :D
XXX
Profil
... ted si nejsem uplne na stoprocent jisty, jak presne adresu napsat, ale kazdopane by ti to melo vyresit tohle: nechej si v tom pokus.swf napr v tom onLoadComplete vypsat pomoci trace adresu toho textoveho pole-predpokladam,ze ti to vypise,po tom importu do master.swf kompletni cestu, takze takhle se pak na nej budes odkazovat.jak ale rikam,nemam ted moznost to zkusit, takze to netvrdim na sto procent ;-)
dredie
Profil *
jo vim co myslis, taky uz me to napadlo, ale nejsem ted u meho stroje, tak to zkusim vecer.... kazdopadne zjistuju ze problem zamerovani je trochu slozitejsi nez jsem myslel.... bleee
dredie
Profil *
nejprve oprava.... myMCL.onLoadComplete je nesmysl, tato property je razena k listeneru, tudiz se jedna o myListener.onLoadComplete, ktery je samozrejme prirazen myMCL

tak po par testech jsem dosel k zaveru:

ono to funuguje, problem je v rychlosti nacitani.... protoze kdyz myMCL zahlasi, ze je nacitani kompletni, ve skutecnosti zrejme neni, nebot adresace selhava. Pridal jsem na master.swf tento kod:

myLV:LoadVars = new LoadVars();
myLV.onLoad = function () {
_level4.textContainer.myTextField.text = myLV.myVariable;
}

a do pokus.swf jsem hodil
_level0.myLV.load("external.txt");

a funguje to tak jak chci a potrebuju :) akorat mi teda unika smysl proprty onLoadComplete kdyz ten load de facto completed neni....???
XXX
Profil
onLoadComplete funguje jak ma, akorat ji asi neumis pouzit ;-)
dredie
Profil *
nechces me poucit? :) Rekni mi kde delam chybu:

//skript v master.swf
var myLV:LoadVars = new LoadVars();
myLV.load("pokus.txt");

var myMCL:MovieClipLoader = new MovieClipLoader()
var myListener:Object = new Object();
myMCL.addListener(myListener);

myListener.onLoadComplete = function() {
_level5.myContainer.myTextField.text = myLV.contents;
}

myMCL.loadClip("pokus.swf",5);

- nefunkcni.... napda me jedine to, ze myLV.load se vola moc pozde na to aby se text zobrazil v pokus.swf, ale v konkretnim pripade ma takovyto soubor cca 200 kb a moc bych se divil, kdyby se nacetl drive nez textak s jednou promennou.... navic jsem v konkretnim pripade pouzil par trace funcki a myLV.load probehlo (aspon co jsem zjistil) drive nez myMCL.onLoadComplete

orpotitomu kdyz pouziju:

//skript v master.swf
var myLV:LoadVars = new LoadVars();
myLV.onLoad = function() {
_level5.textContainer.myTextField.text = myLV.contents;
}

var myMCL:MovieClipLoader = new MovieClipLoader();
myMCL.loadClip("pokus.swf",5);

//skript v pokus.swf
_level0.myLV.load("pokus.txt")

...tak mi to funguje presne jak potrebuju. Co delam spatne? A nerikej mi ze to neumim pouzit (coz je nejspis pravda, ale konstruktivni je to asi jako zachod :)


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