🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: alt.pl.programy.flash-5
Article #33449

Re: Ozenak Flasha 5 ze skryptem PHP

#33449
From: olo
Date: Sat, 04 Nov 2006 17:36
101 lines
5152 bytes
Paweł napisał(a):
> Chce ten skrypt 
> wstawic do animacji flasha na okreslona warstwe we wskazana klatke 
> kluczowa oraz w miejscu wyznaczonym przez parametry (x,y, width, 
> height). 

1. we wskazanej klatce kluczowej na określonej warstwie utwórz nowy 
movieClip. Nazwij go dowolnie (instance name!). Ja na potrzeby tego 
postu przyjmę, że będzie to 'galeria'. Utworzony movieClip (pusty) ustaw 
w pozycji x=0, y=0 (lub w odpowiednio innej pozycji - będzie to 
współrzędna lewego górnego rogu pierwszego zdjęcia galerii)

2. W tej samej klatce kluczowej na warstwie akcji (dobrym nawykiem jest 
stworzenie nowej warstwy w której będziemy wpisywać akcję - jest to 
najzwyklejsza w świecie warstwa :) otwórz panel akcji i wpisz:

var loader = new LoadVars();
loader.parametr = 'wartość';
loader.parametr2 = 'wartość 2';
loader.onLoad = function(ok) {
	if (ok) {
		utworz_galerie(this);
	} else {
		trace('nie można otworzyć pliku .php');
	}
}
loader.sendAndLoad('plik.php', loader, 'POST');

kilka słów wyjaśnienia:
- parametr i parametr 2 to opcjonalne parametry (zmienne) przesyłane do 
pliku .php. Można je w php odczytać normalnie poprzez $_POST['parametr'] 
i $_POST['parametr2']
- dane wysyłane są do pliku 'plik.php' metodą POST (tylko tą metodą 
można to zrobić chcąc by plik php miał wpływ na to co będzie się działo 
we flashu a nie otworzył się po prostu w nowym oknie)
- utworz_galerie to funkcja, którą opiszę poniżej

3. Przejdź do pliku 'plik.php'. Prawdopodobnie będziesz musiał go trochę 
pozmieniać na potrzeby flasha. Nie wiem też w jaki sposób aktualnie 
prezentuje on obrazki. Przyjmę, że listuje on jakiś katalog i 
odpowiednio generuje kod html aby wyświetlić obrazki. Musisz zatem 
zmienić go tak, aby wyświetlał dane w stylu jak poniżej:

&plik1=obrazek1.jpg&
&plik2=obrazek2.jpg&
&plik3=obrazek3.jpg&
&ilosc_plikow=3&

znów kilka słów wyjaśnienia:
- znaczniki '&' są bardzo ważne i nie można o nich zapomnieć. Wiem, że 
można to powyższe zapisać przy użyciu mniejszej ilości '&', ale w ten 
sposób jest ładniej. Krótszy sposób wygląda jak zapisywanie danych 
przesyłanych metodą GET (bez początkowego znaku zapytania)
- plik1, plik2, plik3 itd to nazwy zmiennych przesyłanych do flasha w 
wyniku wykonania skryptu .php. Ich nazwy mogą być dowolne, ważne jednak 
aby zaczynały się jakimś wyrazem a kończyły kolejną cyfrą porządkową 
(aby później można się było łatwo w pętli do nich odwoływać)
- obrazek1, obrazek2, obrazek3 itd to nazwy plików .jpg, które skrypt ma 
odczytać. Tutaj nazewnictwo jest już dowolne
- ilosc_plikow - Jest to ilość obrazków .jpg, które skrypt odczytał z 
katalogu (teoretycznie można by napisać skrypt we flashu, który nie 
potrzebowałby tej zmiennej, ale byłby on trudniejszy niż zwykłe 'for')

4. Przejdź do flasha. Na warstwie funkcji (albo po prostu w klatce i 
warstwie w której wpisałeś poprzedni kod) napisz deklaracje:

function utworz_galerie(plik) {
	var ilosc = plik.ilosc_plikow;
	for (var i=1; i<ilosc_plikow+1; i++) {
		laduj_obrazek(plik, i);
	}
}

function laduj_obrazek(plik, nr) {
	var odstep_x = 150;
	var obj = galeria.createEmptyMovieClip("fotka"+nr, nr);
	obj._x = odstep_x*(nr-1);
	obj._y = odstep_y*(nr-1);
	nazwa_fotki = plik["plik"+nr];
	// gdyby powyższe nie zadziałało to spróbuj:
	// nazwa_fotki = eval("plik.plik"+nr);
	obj.loadMovie("katalog_ze_zdjeciami/"+nazwa_fotki);
}

kilka słów wyjaśnienia:
- katalog_ze_zdjeciami to katalog który listuje skrypt php
- odstep_x to odstęp pomiędzy kolejnymi fotkami (a konkretniej to odstęp 
pomiędzy ich lewymi narożnikami). Znaczy to tyle, że jeśli fotka ma 
rozmiar 140px i odstęp będzie ustawiony tak jak zaproponowałem (150px) 
to odstęp pomiędzy fotkami wyniesie 10px

oczywiście powyższy kod można jeszcze udoskonalić (preloader, 
wczytywanie zdjęcia po zdjęciu a nie wszystkich naraz, wyświetlanie w 
kolumnach i wierszach), ale post jest już wystarczająco długi. Jak 
uporasz się z tym powyżej i będziesz chciał powalczyć dalej to napisz.

-- 
pozdrawiam!

http://webtrunki.pl - piwa, wina, wódki, domowe wyroby
ZAPRASZAMY!!
Technical Details
Message-ID: <eiij2q$b8r$1@inews.gazeta.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <eiib5u$5j4$1@atlantis.news.tpi.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: olo <olo69maupapocztafm@nospam.com>
Newsgroups: alt.pl.programy.flash-5
Subject: Re: Ozenak Flasha 5 ze skryptem PHP
Date: Sat, 04 Nov 2006 18:36:28 +0100
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 101
Message-ID: <eiij2q$b8r$1@inews.gazeta.pl>
References: <eiib5u$5j4$1@atlantis.news.tpi.pl>
NNTP-Posting-Host: ip-194-116-133-3.broker.com.pl
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1162661786 11547 194.116.133.3 (4 Nov 2006 17:36:26 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Sat, 4 Nov 2006 17:36:26 +0000 (UTC)
X-User: fistik
In-Reply-To: <eiib5u$5j4$1@atlantis.news.tpi.pl>
User-Agent: Thunderbird 1.5.0.7 (Windows/20060909)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit