[FLASH] Intro(z możliwośćią pominięcia) we flash i strona t

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.
furiatex
Nowy
Nowy
Posty: 33
Rejestracja: pn mar 24, 2008 12:03 pm
Lokalizacja: W-wa

[FLASH] Intro(z możliwośćią pominięcia) we flash i strona t

Post autor: furiatex »

Witam, mam stronkę we flashu. Wszystko mi pięknie hula tylko że muszę do niej zrobić intro(które jest zaimportowanym filmem z AVI) z możłiwośćią pominięcia go. No i tu mi się zaczynają schody Bo jak robię normalnie preloader do całości, do tego button pomiń intro, to niestety jak przekierowuje BTN do klatki po intro to niestety nic się nie dzieje. Nie pokazuje mi się nic....

Wpierwszej klatce mam kod AS:

Kod: Zaznacz cały

total = _level.getBytesTotal();
loaded = _level.getBytesLoaded();
preloader.procent = Math.round(loaded/total*100);
pasek._xscale = procent;
if (loaded>=total) {
gotoAndPlay(4);
}
w drugiej:

Kod: Zaznacz cały

gotoAndPlay(1);
pod btn mam przypisaną akcję

Kod: Zaznacz cały

on(release){
	gotoAndPlay(185);
}
tutaj klatka 185 jest klatką zakońćzenia filmu intro.....

dajcie jakąś wskazówkę, pomoc, cokolwiek ..........
furiatex
Nowy
Nowy
Posty: 33
Rejestracja: pn mar 24, 2008 12:03 pm
Lokalizacja: W-wa

Re: [FLASH] Intro(z możliwośćią pominięcia) we flash i strona t

Post autor: furiatex »

ok, poradziłem sobię więc spróbuje pomóc innym.

Na początek trzeba zacząć od tego żeby osadzić FLASHA w SWFOBJECT.
Tutaj info jak to zrobić:
http://www.reklamawinternecie.pl/pozycj ... -swfobject

Teraz w pliku html przy umieszczaniu swfa wpisujemy kod, mniej więcej taki:

Kod: Zaznacz cały

<script type="text/javascript">
            var so = new SWFObject('nazwa_pliku.swf', 'id_pliku', 'szerokosc', 'wysokosc', '8', '#CCCCCC');
            so.addParam('menu', 'false');
			so.addParam('wmode','transparent');
			so.addParam('scale','noscale');
			so.addParam('devicefont','false');
			so.addParam('allowScriptAccess','sameDomain');	
			so.addVariable('zmienna1', '2');  
            so.write('content');
        </script>
so.addVariable('zmienna1', '2'); ta linijka kodu odpowiada za przypisanie do "zmiennej1" wartości "2".

Taraz FLASH:
w pierwszej klatce, lub w preloaderze należy zamieśćić prostego ifa:

Kod: Zaznacz cały

if (zmienna1==1){
	gotoAndPlay(9);
					}
		else{
		gotoAndPlay(315);
			}
dzięki temu jeśli zmienna1=1 to animacja startuje od początku. Jeśli zmienna ma inną wartość to animacja startuje z klatki 315, w moim przypadku jest to po intro...

W moim przypadku ten if jest zamieszczony w preloaderze dzięki czemu dopiero po wczytaniu animacji film "idzie" do odpowiedniego miejsca na listwie czasu:

Kod: Zaznacz cały

total = _level.getBytesTotal();
loaded = _level.getBytesLoaded();
preloader.procent = Math.round(loaded/total*100);
pasek._xscale = procent;
if (loaded>=total) 
{
	if (zmienna1==1){
	gotoAndPlay(9);
					}
		else{
		gotoAndPlay(315);
			}
}


Jeżeli chcecie aby np. na każdej waszej podstronie film flasha był w innej klatce czasowej należy dać oczywiście zdefiniować odpowiednią liczbę zmiennych we flashu oraz stworzyć w miejscu zamieszczenia FLASHA coś w rodzaju przełącznika które będzie je zminieniał w zależności od podstrony. Ja skorzystałem z prostego CASE w PHP.

przykład:

Kod: Zaznacz cały

  switch($_GET['act'])
 	{
 		case 'o_nas':
			echo "<script type=\"text/javascript\">
        // <![CDATA[
            var so = new SWFObject('grafika/www.swf', 'www', '900', '338', '8', '#CCCCCC');
            so.addParam('menu', 'false');
			so.addParam('wmode','transparent');
			so.addVariable('zmienna1', '1');  
            so.write('content');
        // ]]>
        </script>";
 			break;
 		case 'galeria':
			echo "<script type=\"text/javascript\">
        // <![CDATA[
            var so = new SWFObject('grafika/www.swf', 'www', '900', '338', '8', '#CCCCCC');
            so.addParam('menu', 'false');
			so.addParam('wmode','transparent');
			so.addVariable('zmienna1', '2');  
            so.write('content');
        // ]]>
        </script>";
 			break;
		case 'cennik':
			echo "<script type=\"text/javascript\">
        // <![CDATA[
            var so = new SWFObject('grafika/www.swf', 'www', '900', '338', '8', '#CCCCCC');
            so.addParam('menu', 'false');
			so.addParam('wmode','transparent');
			so.addVariable('zmienna1', '3');  
            so.write('content');
        // ]]>
        </script>";
 			break;
		case 'kontakt':
			echo "<script type=\"text/javascript\">
        // <![CDATA[
            var so = new SWFObject('grafika/www.swf', 'www', '900', '338', '8', '#CCCCCC');
            so.addParam('menu', 'false');
			so.addParam('wmode','transparent');
			so.addVariable('zmienna1', '4');  
            so.write('content');
        // ]]>
        </script>";
 			break;
		case 'wyslane':
			echo "<script type=\"text/javascript\">
        // <![CDATA[
            var so = new SWFObject('grafika/www.swf', 'www', '900', '338', '8', '#CCCCCC');
            so.addParam('menu', 'false');
			so.addParam('wmode','transparent');
			so.addVariable('zmienna1', '5');  
            so.write('content');
        // ]]>
        </script>";
 			break;
		case 'oferta':
			echo "<script type=\"text/javascript\">
        // <![CDATA[
            var so = new SWFObject('grafika/www.swf', 'www', '900', '338', '8', '#CCCCCC');
            so.addParam('menu', 'false');
			so.addParam('wmode','transparent');
			so.addVariable('zmienna1', '6');  
            so.write('content');
        // ]]>
        </script>";
 			break;
 		default:
			echo "<script type=\"text/javascript\">
        // <![CDATA[
            var so = new SWFObject('grafika/www.swf', 'www', '900', '338', '8', '#CCCCCC');
            so.addParam('menu', 'false');
			so.addParam('wmode','transparent');
			so.addVariable('zmienna1', 7');  
            so.write('content');
        // ]]>
        </script>";

 	}
  ?>

Mam nadzieję że komuś pomogłem tym postem. :-D
Ja niestety nie mogłem się nigdzie doprosić o pomoc :?

pzdr
ODPOWIEDZ