Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP/FLASH] Przekazanie danych
TrAvIkK
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 23.11.2006

Ostrzeżenie: (0%)
-----


Witam (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Nie wiem w jakim forum powinienem umieścić ten temat, więc umieszczam tutaj.
Napisałem już całą aplikację, teraz należy ją przedstawić użytkownikowi. Wersja HTML już jest, teraz należy napisać wersję FLASH (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Aplikacja korzysta z abstrakcji MVC, więc oddzielić będzie w miarę łatwo dwie wersje widoku.
I w sprawie tego mam parę pytań:

1. Jak najlepiej przekazać dane do flasha? Myślałem o XMLu, więc tutaj zachodzą kolejne pytania:
2. Czy dokumenty XML lepiej generować "na żywo", tzn nie zapisując ich w zewnętrznych plikach, tylko generować podczas otwierania aplikacji i odbierać we flashu, czy napisać dla każdej podstrony plik .xml ? Dla HTML'a korzystałem z OPT, czy dla XML'a też będzie dobry? Tzn czy instrukcje typu {if 2 > 3}<item>Item 1{else}<item>Item 2{/if}</item> zadziałają?
3. I wreszcie, ma może ktoś doświadczenie w komunikacji PHP--FLASH, i mógłby doradzić jak najsprawniej to zrobić?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
DjKermit
post
Post #2





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 18.06.2005

Ostrzeżenie: (0%)
-----


Cytat(TrAvIkK @ 30.09.2007, 21:52:26 ) *
1. Jak najlepiej przekazać dane do flasha? Myślałem o XMLu, więc tutaj zachodzą kolejne pytania:
2. Czy dokumenty XML lepiej generować "na żywo", tzn nie zapisując ich w zewnętrznych plikach, tylko generować podczas otwierania aplikacji i odbierać we flashu, czy napisać dla każdej podstrony plik .xml ? Dla HTML'a korzystałem z OPT, czy dla XML'a też będzie dobry? Tzn czy instrukcje typu {if 2 > 3}<item>Item 1{else}<item>Item 2{/if}</item> zadziałają?
3. I wreszcie, ma może ktoś doświadczenie w komunikacji PHP--FLASH, i mógłby doradzić jak najsprawniej to zrobić?

1. Przekazać do fla za pomocą FlashVars czyli, tak samo jak do skryptu php, file.swf?param=value
3. AMFPHP
Go to the top of the page
+Quote Post
TrAvIkK
post
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 23.11.2006

Ostrzeżenie: (0%)
-----


Hmm, AMFPHP wydaje się być całkiem całkiem, ale czy da się nim wysyłać dane metodą POST, GET ?
Zwykłe przesyłanie danych *works like a charm*, ale o GETach i POSTach nie znalazłem/
Go to the top of the page
+Quote Post
zbig
post
Post #4





Grupa: Zarejestrowani
Postów: 144
Pomógł: 30
Dołączył: 5.05.2007
Skąd: Mannheim

Ostrzeżenie: (0%)
-----


Ja osobiscie korzystam z klasy LoadVars
Kod
    var result_lv:LoadVars = new LoadVars();
    result_lv.onLoad = function(success:Boolean) {
        if (success) {
            trace(result_lv);
        } else {
            trace("Error connecting to server.");
        }
    };
    var send_lv:LoadVars = new LoadVars();
    send_lv.name = name_ti.text;
    send_lv.sendAndLoad("http://Adres_do_php, result_lv, "POST");


Z tym, ze pare uwag:
1. Jezeli piszesz obiektowo do dostep do result_lv masz uzywajac mx.utils.Delegate.create, poniewaz poza obiektem LoadVars twoja zmienna result_lv bedzie undefined dla klasy w ktorej LoadVars jest wywolany.
Konkretnie:
Kod
var result_lv:LoadVars = new LoadVars();
    result_lv.onLoad = mx.utils.Delegate.create(this,myResults);
    var send_lv:LoadVars = new LoadVars();
    send_lv.name = name_ti.text;
    send_lv.sendAndLoad("http://Adres_do_php, result_lv, "POST");

    function myResults(success:Boolean) {
        if (success) {
            trace(result_lv);
        } else {
            trace("Error connecting to server.");
        }
    };


W tej sytuacji masz dostep z metody myResults do metod i pol klasy w ktorej byla LoadVars wywolana a jednoczesnie klasa bedzie miala dostep do zmiennej result_lv.

2. Wysylanie do php zmiennych odbywa sie motoda POST albo GET ( kwestia definicji)
definiowanie zmiennych dla php
send_lv.name = jakas_wartosc;
send_lv.surname = jakas_inna_wartosc; itd
php otrzyma zmienne o nazwach $_POST[name], $_POST[surname]
3. Odpowiedz do flasha standartowy flashowy ServerString cos=1&cos2=costam itd
4. Problem z przesylaniem do flasha arrayek ( musisz uzyc jakiegos swojego sposobu porsowania odpowiedzi a do trzymania odpowiedzi we flashu np. klasy DataSet );
5.No i oczywiscie duzym problemem jest ze sledzeniem czy debugowaniem php. Ja uzywam swojej pseudo debug consoli, ktora zapisuje dump do pliku
ktory odczytuje ajaxem.


Innym fajnym sposobem jest klasa XMLSocket ale pracuje wolniej i niestety socket tworzony w php nie radzi sobie w pelni z wymogami tej klasy dlatego w tej sytuacji uzywam javy.

dlatego polecam sposob pierszy
pozdrawiam
Go to the top of the page
+Quote Post
DjKermit
post
Post #5





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 18.06.2005

Ostrzeżenie: (0%)
-----


Cytat(TrAvIkK @ 1.10.2007, 17:16:46 ) *
Hmm, AMFPHP wydaje się być całkiem całkiem, ale czy da się nim wysyłać dane metodą POST, GET ?
Zwykłe przesyłanie danych *works like a charm*, ale o GETach i POSTach nie znalazłem/

Ciekaw jestem poco skoro najnormalniej w świecie wywołujesz metody klas udostępnionych jako serwisy, a co za tym idzie możesz im przekazać parametry.
Z resztą to zupełnie inne bajki.

Ten post edytował DjKermit 2.10.2007, 00:56:17
Go to the top of the page
+Quote Post
TrAvIkK
post
Post #6





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 23.11.2006

Ostrzeżenie: (0%)
-----


DjKermit rozumiem zasadę działania AMFPHP, ale jeżeli "coś by się zmieniło", to muszę zmieniać i w PHP, i w flash'u.
A tak, żądanie pozostałoby to samo, a tylko akcja się zmieniła.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 01:41