Strona 1 z 3
F8 - ukrywanie cantainera
: wt maja 27, 2008 6:26 pm
autor: hdhkff
Stworzyłem filmik 2, do którego za pomocą containerMc ładuję filmik 1. Filmik ładuje się. Chcę zrobić tak by po załadowaniu się od razu został ukryty.
Zastosowałem polecenie
Jednak filmik 1 cały czas pozostaje widoczny. Jak ukryć filmik 1 używając visible = false ?
Re: F8 - ukrywanie cantainera
: wt maja 27, 2008 10:14 pm
autor: Marek_bf
Jak ładuesz? Pokaż kod.
Re: F8 - ukrywanie cantainera
: wt maja 27, 2008 10:17 pm
autor: hdhkff
Kod: Zaznacz cały
var containerMc:MovieClip = this.createEmptyMovieClip("containerMc", this.getNextHighestDepth());
var mclListener:Object = new Object();
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
containerMc._x = 0;
containerMc._y = 0;
image_mcl.loadClip("intro.swf",containerMc);
Re: F8 - ukrywanie cantainera
: śr maja 28, 2008 8:44 am
autor: Marek_bf
Kod: Zaznacz cały
var containerMc:MovieClip = this.createEmptyMovieClip("containerMc", this.getNextHighestDepth());
containerMc._visible = false;
var mclListener:Object = new Object();
mclListener.onLoadStart = function(e) {
containerMc._visible = false;
};
mclListener.onLoadInit = function(e) {
containerMc._visible = false;
};
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
containerMc._x = 0;
containerMc._y = 0;
image_mcl.loadClip("intro.swf",containerMc);
Re: F8 - ukrywanie cantainera
: śr maja 28, 2008 3:34 pm
autor: hdhkff
Domyślam się o co chodzi w konstrukcji tego kodu. Po ukończeniu całego projektu zapoznam się z dokładnie z tym co następuję po czym i jakie znaczenie ma każde z poleceń zawarte w użytych przeze mnie skryptach. Marku, Twój kod oczywiście działa poprawnie, wczytany filmik został ukryty jednak w tle cały czas słyszę muzykę. Wnioskuję z tego, że po cichu następują także procesy graficzne, co może stanowić problem po załadowaniu większej ilości filmików. Muszę znaleźć sposób na to by ukryty film siedział cicho w stanie uśpienia do momentu odpowiedniego wywołania go odpowiednim kodem. Istnieje sposób jakieś polecenie typu stop(all things in movie) i play(all things in movie) ?

Re: F8 - ukrywanie cantainera
: śr maja 28, 2008 4:11 pm
autor: Marek_bf
Oczywiście zachodzą i procesy graficzne. Najlepszym rozwiązaniem jest dać we wczytywanym pliku pierwsza klatkę pustą, i dać w niej stop(); po załadowaniu, kiedy jest taka potrzeba dać play();
Re: F8 - ukrywanie cantainera
: śr maja 28, 2008 4:50 pm
autor: hdhkff
Dobry pomysł, w zasadzie rozwiązuje większość moich problemów z ładowaniem filmików. Nie wiem tylko jak odnieść się z akcji w preloaderze do drugiej klatki wczytanego filmiku. Jakaś sugestia ?
Re: F8 - ukrywanie cantainera
: pt maja 30, 2008 12:34 am
autor: hdhkff
Po sporej filtracji całego flash forum znalazłem post (
http://forum.webinside.pl/viewtopic.php ... hlight=swf ), którego autor posiadał podobny problem do opisanego wyżej przeze mnie. Znalazłem pewną ciekawą funkcję o nazwie foo . Pomyślałem trochę nad sensem stosowania tego rodzaju polecenia. Zrozumiałem z tego, że aby móc sterować filmikiem zewnętrznym z poziomu filmiku głównego, należy stworzyć coś w rodzaju pozwolenia na ingerencję w zawartość filmiku zewnętrznego, co w gruncie rzeczy wydaje się być zrozumiałym zabezpieczeniem. Jak rozumiem w tym właśnie celu, w tym przypadku stosuje się funkcję foo.
Wstawiłem więc:
w pierwszą klatkę filmiku zewnętrznego.
Teraz w filmiku głównym należało by stworzyć kod odnoszący się do funkcji foo tak, by w filmiku zewnętrznym nastąpił skok do klatki nr 2, znajdującej się na głównej listwie czasowej. Zaczęły się moje schody. Poproszę o nakierowanie mnie co robię źle. Kod w filmiku głównym:
Kod: Zaznacz cały
var containerMc:MovieClip = this.createEmptyMovieClip("containerMc", this.getNextHighestDepth());
containerMc._visible = false;
var mclListener:Object = new Object();
mclListener.onLoadStart = function(e) {
containerMc._visible = false;
};
mclListener.onLoadInit = function(e) {
target_mc.foo();
containerMc._visible = false;
};
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
containerMc._x = 0;
containerMc._y = 0;
image_mcl.loadClip("intro.swf",containerMc);
containerMc.target_mc.foo (gotoAndPlay (2)); // <--- zabawne nie :)
Re: F8 - ukrywanie cantainera
: pt maja 30, 2008 11:44 am
autor: Marek_bf
foo to nie jest jakaś tam specjalna funkcja to tylko nazwa funkcji równie dobrze mogłaby brzmieć kapelusz
Kod: Zaznacz cały
mclListener.onLoadInit = function(e) {
e.gotoAndPlay(2);
};
Gdybyś przejrzał w FAQ o MovieClipLoader byłoby to oczywiste.
Re: F8 - ukrywanie cantainera
: pt maja 30, 2008 2:09 pm
autor: hdhkff
Chylę nisko kapelusz i oznajmiam, że funkcja działa

Re: F8 - ukrywanie cantainera
: pt maja 30, 2008 6:11 pm
autor: hdhkff
Wewnątrz filmiku 1 ( wewnątrz jednego z mc ) zamieściłem kod funkcji iend:
Wewnątrz filmiku 2 w pierwszej klatce głównej listwy czasowej zamieściłem kod:
Teraz chcę z Filmiku 3 wykonać następujące sterowanie:
Filmik 3 ładuję filmik 1 , w momencie gdy w filmiku 1 dojdzie do klatki opisanej funkcją iend załaduje się filmik 2 i za pomocą funkcji os przeskoczy na drugą klatkę tego filmiku.
Moje próby kończą się porażką, odnoszę wrażenie, że błądzę gdzieś gdzie nie powinienem.
Kod: Zaznacz cały
var containerMc:MovieClip = this.createEmptyMovieClip("containerMc", this.getNextHighestDepth());
var mclListener:Object = new Object();
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
containerMc._x = 0;
containerMc._y = 0;
image_mcl.loadClip("filmik1.swf",containerMc);
// tu zaczynają się moje próby
mclListener.onLoadInit = function(iend) {
iend.function(os);
os.gotoAndPlay (2);
};
}
// teraz filmik2
var containerMc:MovieClip = this.createEmptyMovieClip("containerMc2", this.getNextHighestDepth());
var mclListener:Object = new Object();
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
containerMc2._x = 0;
containerMc2._y = 0;
image_mcl.loadClip("opowiesc filmik2.swf",containerMc2);
Jak to uporządkować by spełniało swoją funkcję ?
Re: F8 - ukrywanie cantainera
: pt maja 30, 2008 7:21 pm
autor: Marek_bf
Ja bym zrobił coś w tym stylu, że we wczytującym pliku dał jakiś MC, który w onEnterFrame wykrywałby czy wczytywany plik doszedł do danej klatki i wtedy wywoływać funkcję.
Re: F8 - ukrywanie cantainera
: sob maja 31, 2008 11:44 pm
autor: hdhkff
Szperam i szperam i niestety nie mam pojęcia jak to zrobić.
Re: F8 - ukrywanie cantainera
: ndz cze 01, 2008 3:46 am
autor: hdhkff
Bardzo proszę o pomoc w kwestii tego filmiku ładującego pozostałe filmiki, bo już mam poblokowany umysł od tego projektu.
Re: F8 - ukrywanie cantainera
: pn cze 02, 2008 9:13 am
autor: Marek_bf
No dobrze, uproszczony przykład kolejkowania:
Klik