Obraz&preloader

Technologia Flash, czyli animacja na potrzeby stron WWW to świat daleko odbiegły od zwykłego programowania i kodu. Zapytaj o pomoc i podziel się z nami Twoimi problemami z zakresu Flasha.
tivi16
Nowy
Nowy
Posty: 55
Rejestracja: wt cze 21, 2005 5:08 pm

Obraz&preloader

Post autor: tivi16 »

Witam!Czy mozna uzyskac taki efekt:otóż chciałbym,aby wraz z postępem ładowania się np. jakiego swf-a rozjaśniało mi się tło....tak,aby standardowy pasek postępu zastąpić tłem,które wraz z postępem będzie się rozjaśniało(pojawiało)...nei weim czy jest to możliwe,ale spodobał mi się taki efekt,który widziałem gdzieś...pozdrawiam!
Marek_bf
Administrator
Posty: 4419
Rejestracja: czw lut 24, 2005 2:14 am
Kontakt:

Re: Obraz&preloader

Post autor: Marek_bf »

Dla MC rozjaśnianego nadaj instancję my_mc"
Rozjaśnianie:

Kod: Zaznacz cały

var my_color = new Color(my_mc);
this.createTextField("bp_txt", 0, 10, 10, 100, 20);
bp_txt.selectable = false;
this.onEnterFrame = function() {
	var bl = this.getBytesLoaded();
	var bt = this.getBytesTotal();
	var bp = Math.floor((bl / bt) * 100);
	var c = bp * 2.55;
	this.bp_txt.text = bp + " %";
	var myColorTransform = {ra:100, rb:c, ga:100, gb:c, ba:100, bb:c, aa:100, ab:255};
	my_color.setTransform(myColorTransform);
	if (bp == 100) {
		this.gotoAndStop(2);
		bp_txt.removeTextField();
		delete my_color;
		delete this.onEnterFrame;
	}
};
stop();
Pojawianie się:

Kod: Zaznacz cały

this.createTextField("bp_txt", 0, 10, 10, 100, 20);
bp_txt.selectable = false;
my_mc._alpha = 0;
this.onEnterFrame = function() {
	var bl = this.getBytesLoaded();
	var bt = this.getBytesTotal();
	var bp = Math.floor((bl / bt) * 100);
	this.my_mc._alpha = bp;
	this.bp_txt.text = bp + " %";
	if (bp == 100) {
		this.gotoAndStop(2);
		bp_txt.removeTextField();
		delete this.onEnterFrame;
	}
};
stop();
tivi16
Nowy
Nowy
Posty: 55
Rejestracja: wt cze 21, 2005 5:08 pm

Re: Obraz&preloader

Post autor: tivi16 »

Wielkie dzięki Marek_F....naprawdę mi pomogłeś...o to dokładnie mi chodziło....myślałem,że nie można czegoś takiego zrobić....a jednak....jeszcze raz wielkie dzięki...pozdrawiam!!!
tivi16
Nowy
Nowy
Posty: 55
Rejestracja: wt cze 21, 2005 5:08 pm

Re: Obraz&preloader

Post autor: tivi16 »

Wszystko działa jak należy...a nawiązując....do tematu...czy można na tej samej zasadzie zrobić jakąś grafikę,która by się odsłaniała wraz z postępem załadowania stronki?Podjerzewam,że trzeba użyć maski i jakąś akcję dopisać i tyle wiem(tzn.podejrzewam)...Z góry dzięki!
Marek_bf
Administrator
Posty: 4419
Rejestracja: czw lut 24, 2005 2:14 am
Kontakt:

preloader

Post autor: Marek_bf »

Może być maska, może być zwykłe odsłanianie jeżeli tło jej jednolite.
Gdy chcesz poruszać obiektem to użyj własności _x i _y.
Klik
tivi16
Nowy
Nowy
Posty: 55
Rejestracja: wt cze 21, 2005 5:08 pm

Re: Obraz&preloader

Post autor: tivi16 »

Ok jeszcze raz wielki dzięki...pozdrawiam!
tivi16
Nowy
Nowy
Posty: 55
Rejestracja: wt cze 21, 2005 5:08 pm

Re: Obraz&preloader

Post autor: tivi16 »

Hmmm...niestety pojawił się problem... odnośnie "preloader'a z maską" tzn. w sumie to nieduży ale zawsze..otóż po wpisaniu tej akcji

Kod: Zaznacz cały

this.createTextField("bp_txt", 0, 10, 10, 100, 20);
bp_txt.selectable = false;
mask_mc.swapDepths(masked_mc);
mask_mc._width = masked_mc._width;
mask_mc._height = masked_mc._height;
mask_mc._x = masked_mc._x - mask_mc._width;
mask_mc._y = masked_mc._y;
var xP = mask_mc._x;
this.onEnterFrame = function() {
	var bl = this.getBytesLoaded();
	var bt = this.getBytesTotal();
	var bp = Math.floor((bl / bt) * 100);
	this.mask_mc._x = xP + bp * (masked_mc._width / 100);
	this.bp_txt.text = bp + " %";
	if (bp == 100) {
		this.gotoAndStop(2);
		bp_txt.removeTextField();
		delete xP;
		delete my_color;
		delete this.onEnterFrame;
	}
};
masked_mc.setMask(mask_mc);
stop();
animacja idzie od drugiej klatki...mimo,że wpisałem (scene 2, 1)....bo chcę,żeby animacja szła od początku następnej sceny....nie wiem ale nie działa....pewnie popełniłem jakiś banalny błąd,ale nie wiem gdzie....czy wiecie może co źle zrobiłem...lub może czego w ogóle nie zrobiłem?Pozdrawiam!
Marek_bf
Administrator
Posty: 4419
Rejestracja: czw lut 24, 2005 2:14 am
Kontakt:

Re: Obraz&preloader

Post autor: Marek_bf »

Pewnie, że banalny ;) Zmień 16 linię kodu na:

Kod: Zaznacz cały

 this.gotoAndPlay("Scene 2", 1);
tivi16
Nowy
Nowy
Posty: 55
Rejestracja: wt cze 21, 2005 5:08 pm

Re: Obraz&preloader

Post autor: tivi16 »

Hmmm....zrobiłem tak jak napisałeś,ale nie działa....po prostu tylko preloader z maską "leci" a po tym animacja staje i nic się nie dzieje,mimo że w drugiej scenie w 1 klatce mam obrazek....czy wiesz może co powinienem zrobić?pozdrawiam!
tivi16
Nowy
Nowy
Posty: 55
Rejestracja: wt cze 21, 2005 5:08 pm

Re: Obraz&preloader

Post autor: tivi16 »

Hehe...wiem już co jest nie tak...animacja nie szła bo na końcu tego kodu

Kod: Zaznacz cały

this.createTextField("bp_txt", 0, 10, 10, 100, 20);
bp_txt.selectable = false;
mask_mc.swapDepths(masked_mc);
mask_mc._width = masked_mc._width;
mask_mc._height = masked_mc._height;
mask_mc._x = masked_mc._x - mask_mc._width;
mask_mc._y = masked_mc._y;
var xP = mask_mc._x;
this.onEnterFrame = function() {
	var bl = this.getBytesLoaded();
	var bt = this.getBytesTotal();
	var bp = Math.floor((bl / bt) * 100);
	this.mask_mc._x = xP + bp * (masked_mc._width / 100);
	this.bp_txt.text = bp + " %";
	if (bp == 100) {
		this.gotoAndStop(2);
		bp_txt.removeTextField();
		delete xP;
		delete my_color;
		delete this.onEnterFrame;
	}
};
masked_mc.setMask(mask_mc);
stop();
jest znacznik stop(); , więc się go pozbyłem i działa..dzięki jescze raz...pozdrawiam!
Marek_bf
Administrator
Posty: 4419
Rejestracja: czw lut 24, 2005 2:14 am
Kontakt:

Re: Obraz&preloader

Post autor: Marek_bf »

Raz na zawsze skończyć ze scenami :)
Wywal this.

Kod: Zaznacz cały

gotoAndPlay("Scene 2", 1);
tivi16
Nowy
Nowy
Posty: 55
Rejestracja: wt cze 21, 2005 5:08 pm

Re: Obraz&preloader

Post autor: tivi16 »

Ok, już mniej więcej wiem jak to zrobić....jednak jeszcze mam pytanko...bo ten skrypt automatycznie robi dynamiczne pole tekstowe,w którym wyświatla się % załadowania animacji...jednak jest problem bo napis jest w kolorze czarnym a moje tło również...przez co tych % nie widać...a poza tym czy można ustawić miejsce ich wyświetlania??Pozdrawiam!
Marek_bf
Administrator
Posty: 4419
Rejestracja: czw lut 24, 2005 2:14 am
Kontakt:

Re: Obraz&preloader

Post autor: Marek_bf »

Na końcu kodu musi być stop inaczej preloader nie działa prawidłowo!!!

Kod: Zaznacz cały

var pozX = 30, pozY = 20; // ustawiasz położenie x i y
this.createTextField("bp_txt", 0, pozX, pozY, 100, 20);
bp_txt.selectable = false;
bp_txt.textColor = 0xff0000; // ustawiasz kolor tekstu
mask_mc.swapDepths(masked_mc);
mask_mc._width = masked_mc._width;
mask_mc._height = masked_mc._height;
mask_mc._x = masked_mc._x - mask_mc._width;
mask_mc._y = masked_mc._y;
var xP = mask_mc._x;
this.onEnterFrame = function() {
	var bl = this.getBytesLoaded();
	var bt = this.getBytesTotal();
	var bp = Math.floor((bl / bt) * 100);
	this.mask_mc._x = xP + bp * (masked_mc._width / 100);
	this.bp_txt.text = bp + " %";
	if (bp == 100) {
		gotoAndPlay("Scene 2", 1);
		bp_txt.removeTextField();
		delete pozX;
		delete pozY;
		delete xP;
		delete my_color;
		delete this.onEnterFrame;
	}
};
masked_mc.setMask(mask_mc);
stop();
tivi16
Nowy
Nowy
Posty: 55
Rejestracja: wt cze 21, 2005 5:08 pm

Re: Obraz&preloader

Post autor: tivi16 »

Ok..zrobię tak jak napisałeś...wielkie dzięki...pozdrawiam!
ODPOWIEDZ