wykrycie wczytywania
wykrycie wczytywania
Witam, mam taki problemik:
jest Scene2 w niej MC "View" i w niego ładowany jest zewnętrzny klip1.swf po kliknięciu na przycisk "B1" w menu. Klipów jest kilka i przycisków analogicznie też, każdy wpierw czyści zawartość "View" po czym ładuje pzrypisany sobie .swf do "View". Chcę zrobić preloader uniwersalny zawarty bezpośrednio w Scene2 pokazujący się w momęcie jakiegokolwiek ładowania danych w MC "View".
Pozdrawiam i dziękuje za ewentualne pomysły
jest Scene2 w niej MC "View" i w niego ładowany jest zewnętrzny klip1.swf po kliknięciu na przycisk "B1" w menu. Klipów jest kilka i przycisków analogicznie też, każdy wpierw czyści zawartość "View" po czym ładuje pzrypisany sobie .swf do "View". Chcę zrobić preloader uniwersalny zawarty bezpośrednio w Scene2 pokazujący się w momęcie jakiegokolwiek ładowania danych w MC "View".
Pozdrawiam i dziękuje za ewentualne pomysły
-
djafterhour
- Nowy

- Posty: 101
- Rejestracja: pt lip 13, 2007 5:12 pm
Re: wykrycie wczytywania
Zobacz może Ci się to przyda
Zrób poza sceną przycisk o nazwie instancji "B" i w tym przycisku umieść pole tekstowe z wartością var = tekst
Zrób poza sceną przycisk o nazwie instancji "B" i w tym przycisku umieść pole tekstowe z wartością var = tekst
Kod: Zaznacz cały
var pliki:Array = ["swf1.swf","swf2.swf","swf3.swf"];
var labels:Array = ["Clip1", "Clip2", "Clip3"];
var pozycja_def = 0;
var wysokosc = B._height;
function loadSwf(plik){
var view:MovieClip = this.createEmptyMovieClip("view", this.getNextHighestDepth());
view._x = 60;
var mcLoader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
var interval:Object = new Object();
mcLoader.addListener(listener);
mcLoader.loadClip(plik, view);
interval.id = setInterval(Progress, 1, mcLoader, view, interval);
listener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void {
procent = Math.round(bytesLoaded/bytesTotal *100 );
trace(Math.round(bytesLoaded/8000) + "/" + Math.round(bytesTotal/8000) +'KB\t' + procent+"%");
};
};
function Progress(mcLoader:MovieClipLoader, view:MovieClip, interval:Object):Void {
var progress:Object = mcLoader.getProgress(view);
trace("Załadowano bitów " + progress.bytesLoaded + " Całkowita ilość bitów " + progress.bytesTotal);
if(progress.bytesLoaded == progress.bytesTotal) {
clearInterval(interval.id);
};
};
function budujMenu(wysokosc:Number, pozycja_def:Number,pliki:Array, labels:Array){
for(i=0;i< pliki.length; i++){
pozycja_y = pozycja_def + i*wysokosc;
B.duplicateMovieClip("B"+i,this.getNextHighestDepth(), {_y:pozycja_y,_x:0});
this["B"+i].i = i;
this["B"+i].tekst = labels[i]
this["B"+i].onPress = function(){
//view.removeMovieClip();
loadSwf(pliki[this.i]);
};
};
};
budujMenu(wysokosc, pozycja_def,pliki, labels);
stop();
-
djafterhour
- Nowy

- Posty: 101
- Rejestracja: pt lip 13, 2007 5:12 pm
Re: wykrycie wczytywania
a tu masz linka do przykładu:
www.pleciuga.pl/majkel/Loader.zip
www.pleciuga.pl/majkel/Loader.zip
Re: wykrycie wczytywania
hmmmm,dzięki za odpowiedź ale nie mam pojęcia o co chodzi, jestem początkujący raczej i zanim się pzregryze pzrez ten skrypt to mnie zima zastanie, co wejde na forum to jest inny sposób kodowania preloaderów, moda na jakies funkcje, więc może uproszcze sobie wizje swoją i wprowadze takie udogodnienie ażeby nic nie zliczało tylko w czasie wczytywania .swf w MC "view" inny MC w scene2 poprostu zmieniał się pomiędzy _visible = true i false, taka jakby lampka kontrolna pokazująca wczytywanie, macie jakieś pomysły bo ja już nad tym myśle 2 dzień i nic nie wymyśliłem 
-
djafterhour
- Nowy

- Posty: 101
- Rejestracja: pt lip 13, 2007 5:12 pm
Re: wykrycie wczytywania
Ok. To by było tak (przykład z helpa) znaleźć go można poprzez wprowadzenie do pola search wyrażenia "onLoadProgress":
Ostatnia linia wTwoim przypadku powinna być zastąpiona w podobie do tego:
i MovieClip "View" nie musi być czyszczony przy każdym ładowaniu, jest to robione automatycznie przy ładowaniu nowego pliku.
Kod: Zaznacz cały
/*tworzymy nowy klip (możesz tą linię pominąć bo masz już clip View i zamiast container wszędzie używaj View*/
var container:MovieClip = this.createEmptyMovieClip("container", this.getNextHighestDepth());
// tworzymy Nowy Loader klasy MovieClipLoader
var mcLoader:MovieClipLoader = new MovieClipLoader();
// tworzymy nowy element nasłuchu zdarzeń
var listener:Object = new Object();
//definiujemy zdarzenie przypisując mu funkcję z parametrami ładowania
//zdarzenie onLoadProgress
listener.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void {
trace(target + ".onLoadProgress with " + bytesLoaded + " bytes of " + bytesTotal);
}
// definiujemy co ma się stać po załadowaniu
listener.onLoadInit = function(target:MovieClip):Void {
trace(target + ".onLoadInit");
}
//podłączamy wszystkie wcześniej zdefiniowane zdarzenia do obiektu
//mcLoader za pomocą metody addListener;
mcLoader.addListener(listener);
// w końcu wczytujemy odpowiedni plik do "kontenera" u Ciebie jest to "View"
mcLoader.loadClip("http://www.w3.org/Icons/w3c_main.png", container);
Kod: Zaznacz cały
B1.onPress = function(){
mcLoader.loadClip("plik1.swf", View);
}
// i analogicznie
B2.onPress = function(){
mcLoader.loadClip("plik2.swf", View);
}
B3.onPress = function(){
mcLoader.loadClip("plik1.swf", View);
}
Re: wykrycie wczytywania
ano, teraz to już wiem wszystko co trzeba, dzięki śliczne za wersje z komentami, biore się do dziobania tematu odrazu.
A swoja drogą, jak uczyłem się actionscript 5 lat temu to nie było takiej mody na funkcje albo mnie się tak wydaje. kto mi to wytłumaczy?
Pozdrawiam
A swoja drogą, jak uczyłem się actionscript 5 lat temu to nie było takiej mody na funkcje albo mnie się tak wydaje. kto mi to wytłumaczy?
Pozdrawiam
-
djafterhour
- Nowy

- Posty: 101
- Rejestracja: pt lip 13, 2007 5:12 pm
Re: wykrycie wczytywania
wyobraz sobie duzo przyciskow w scenie kiedys event do przycisku był:
on (press)
{
funkcja();
}
on (press)
{
funkcja();
}
on (press)
{
funkcja();
}
on (press)
{
funkcja();
}
on (press)
{
funkcja();
}
itd... np do 100
a teraz jest w jednej klatce:
co lepsze akcja może być wczytywana np z XML czy z pliku tekstowego
on (press)
{
funkcja();
}
on (press)
{
funkcja();
}
on (press)
{
funkcja();
}
on (press)
{
funkcja();
}
on (press)
{
funkcja();
}
itd... np do 100
a teraz jest w jednej klatce:
Kod: Zaznacz cały
var akcja:Array = ["klatka1", "klatka2", "galeria" ... , "akcja100"];
function onpresuj (){
for(i=0; i<100;i++)
{
this[przycisk+i].i = i;
this[przycisk+i].onPress = function(){
funkcja(akcja[this.i);
};
};
};
onpresuj();
Re: wykrycie wczytywania
działa, potrzebne było przeprogramowanie butonów na funkcje 
funkcje mnie osaczyły
funkcje mnie osaczyły