Autor Zpráva
Dana02
Profil
Preji pekny den
jak jiz nazev tematu napovida, mam problem s preloaderem, ktery je obsazen v nacitanem SWFku. Pokud spustim nacitane SWF, preloader bez problemu nacita a funguje jak ma. Problem nastane teprve tehdy, kdyz ho chci nacist do jineho SWF a k tomu jeste do MovieClipu. A prave tady je ten problem. Preloader nefunguje pokud je nacitan do movie clipu.

Muj preloader je klasicky --

bytes_loaded = Math.round(_root.getBytesLoaded());
bytes_total = Math.round(_root.getBytesTotal());
getPercent = bytes_loaded/bytes_total;
_root.loadBar._width = getPercent*124;
_root.loadText = Math.round(getPercent*100)+"%";
if (bytes_loaded == bytes_total) {
gotoAndPlay(3);
}

a zapis na tlacitku mam tento --

on (release) {
_root.hlavni.movie.loadMovie("scena.swf");
}

Absolutne netusim, proc nechce fungovat. Mam dojem, ze to bude tim jak preloader napsany, ale tento typ preloaderu pouzivam vsude a jeste s nim problem nebyl.
Nasel by se nekdo, kdo by odpovedel a poradil co s tim.

Diky moc
XXX
Profil
Tento zpusob preloaderu neni prilis stastny pro nacitani externiho SWF do MC. Preloader nevytvarej v externim SWF, ale primo v tom, ve kterem jej nacias ;) Nepouzivej k tomu metodu loadMovie, ale pouzij movieClipLoader. O nem je tady toho na diskusi hodne, pripadne se podivej primo do helpu Flashe, ve ktere je primo kompletni priklad ;)
dredie
Profil
Dana02
ja bych teda vyuzil asi jine reseni (uprimne receno z toho skriptu netusim, jak ten preloader muze vubec fungovat - vypada jakoze se odkazuje sam na sebe a skript se prece nemuze spustit driv nez se nacte cely soubor :), nicmene k tvemu preloaderu - problem podle me bude v adresaci. Pokud totiz soubor s vyse zminenym kodem nactes do jineho swf, _root pak oznacuje casovou osu hlavni, to znamena _level0. Takze pokud ten preloader nactes do levelu 10, cesta je neplatna, tudiz ti to nemuze fungovat. U MC je to stejne, nactes ho do MC, ale v kodu se odkazujes na hlavni casovou osu (_root). Problem se da resit pouzitim relativnich misto absolutnich cest - pokud ten preloader je udelany tak, ze na hlavni casove ose je loadBar a loadText a skript davas na lavni casovou osu, potom cesty jsou:

this.loadBar
this.loadText

- nicmene jak to tak sleduju, pises kod velmi (s prominutim) amaterksym zpusobem - jedno zakladni pravidlo rika, ze skript se nikdy nepripojuje primo k symbolu (tak jak to mas ty), ale vzdy se co nejvice skriptu pise na 1. frame hlavni casove osy hlavniho souboru, ktery pak nacita ostatni. Dale nikdy pokud mozno nepouzivej absolutni cesty. Dalsi vec - pro nacitani externich dat ze uz nejakou dobu v AS 2.0 pouzvia MovieClipLoader objekt (viz www.adobe.com)

d.
dredie
Profil
XXX
Preloader nevytvarej v externim SWF, ale primo v tom, ve kterem jej nacias
- uprimne receno to nevidim jako stastne reseni pokud pouzivas MCL class a nacitani do ruznych levelu. V tom pripade totiz preloader bude v _level0 a nacitany soubor ho pak zakryje svou grafikou (pokud se do nej bude nacitat jeste neco). Nebo mi neco unika? :D

D.
XXX
Profil
dredie
Zrejme unika :-D Vzdyt staci umistit preloader do vyssi vrstvy nez MC, do nehoz se nacita ;) Na hlavni casove ose bude skript pro preloader a samotne textove pole nebo graficky preloader muze byt nad MC ;)
dredie
Profil
XXX
a kdyz nenacitas do MC ale primo do levelu....?
XXX
Profil
dredie
No ja teda nevim, ale level se tady vubec neresil ;) Ja jen odpovidam na zadane dotazy :-D
dredie
Profil
XXX
tal jo tak je to trosku OT, jenom takova poznamka... ja totiz loadovani do jinych MC vubec nepouzivam, vsechno resim pres levely ;) Otazka je jeslti je to horsi, lepsi, nebo to samy jako do MC...?
XXX
Profil
dredie
No ja nevim.. standardne pouzivam MC, ale jsou pripady, kdy MC nejde pouzit. MC se mi zdaji vyborne, kdyz chces externi swf nekde umistit a pripadne s nim dale manipulovat, premistovat, atd ;)
dredie
Profil
XXX
no muzes stejne tak premistovat cely level (pomoci _x a _y)... ten level je de facto taky "movie clip", akorat o rad vys, aspon jsem s nim zatim mohl vzdy manipulovat uplne stejne. Ono je to asi jedno, akorat mam pocit ze je v tom vetsi poradek, protoze si v tom hlavnim souboru akorat nadefinujes levely jako promenne s cilsy a pak se na ne odkazujes pri loadClip a kdyz zmenis cisla v tech definicich, neni v tom zadny problem, pouze prehodis stack order. Ale asi to vyjde uplne na stejno.
Dana02
Profil
tak chlapci diky, rozhodne si vase rady vezmu pro priste k srdci. Ted bylo reseni pro me takove, ze stacilo v tom skriptu smazat ty odkazy na hlavni casovou osu _root.
XXX
Profil
no a pro priste mam pro tebe jeste jedno reseni. Misto mazani _root ti staci pouzit metodu _lockroot pro zamceni casove osy ;) Vice o ni najdes v helpu. Kazdopadne vzdycky je lepsi adresovat relativne...
Toto téma je uzamčeno. Odpověď nelze zaslat.