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

Kod: Zaznacz cały

containerMc._visible = false;
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:

Kod: Zaznacz cały

function foo() {
   trace(1);
} 
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:

Kod: Zaznacz cały

function iend() {
   trace(1);
} 
Wewnątrz filmiku 2 w pierwszej klatce głównej listwy czasowej zamieściłem kod:

Kod: Zaznacz cały

function os() {
   trace(1);
} 
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