Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][FLASH]Połączenie
Forum PHP.pl > Forum > Gotowe rozwiązania > Szukam
Mlodycompany
Witam. Chciałbym zrobić galerie zdjęć na stronie z wykorzystanie flasha. Otóż jest problem. Amianowicie nie wiem jak zrobić, aby zdjecia były wczytywane z bazy. Animacje flasha wczytuje zdjecia podane w animacji. Do robienie korzystam z Swish Maxa. Czy ktoś może mi powiedzieć jak to zrobić i czy to wogóle jest możliwe?
devnul
z bazą łączyć się musi np jakiś skrypt php który przetworzy dane powiedzmy do postaci XML i tak zwróci je do flasha.
Mlodycompany
a czy moglbys mi to na przykladzie pokazac poniewaz takie powiedzenie nic mi nie mowi biggrin.gif
devnul
co pokazać na przykładzie? łączenie z bazą? było na forum, poszukaj? Stworzenie xml'a? Też pewnie było nie raz.
Mlodycompany
chodzi mi o to zeby dane z bazy przekazac do xml'a bo polaczyc sie to jeszcze portafie
devnul
no to połowa sukcesu. Z xml'em to był przykład, nie wiem jak chcesz odbierać dane we flashu, bo do tego się dostosować powinieneś. jeśli faktycznie przez xml to poczytaj jak wygląda xml i go zbuduj.
przykład xml'a:
http://pl.wikipedia.org/wiki/XML#Przyk.C5....wy_dokument_XML
Mlodycompany
ja tez nie wiem poniewaz jezeli chodzi o xml i flash to jestem zielony wiec chcialbym otrzymac przyklad lub gotowy skrypt

moze napisz jak wyglada plik flasha biggrin.gif

scena_1
-movie_border
-frame
-images
--image6
--image4
--image5
--image3
--image2
--image1
-thumb_scroller
--main_manu
---thumbs
----thumb6
----thumb5
----thumb4
----thumb3
----thumb2
----thumb1
----width_holder
---right_menu
---left_menu
-background

skrypty:
scena_1
function showImage(img) {
for (x in images) {
if (images[x] != images[img]) {
images[x]._visible = 0;
trace(images[x] add "=" add images[x]._visible);
}
}
images[img]._visible = 1;
trace(images[img] add " visibility = " add images[img]._visible);
}
onFrame (40,afterPlacedObjectEvents) {
javascript("alert('dupa');");
stop();
}

main_manu
onEnterFrame(includingFirstFrame) {
if (this._x >= menuWidth || this._x <= (startX-menuWidth)) {
this._x = startX;
}
}
onFrame (1) {
this._vx = speed;
}
onLoad () {
speed = -50;
pad = 15;
setProperty(thumbs.width_holder, _width, (_parent._width+pad));
menuWidth = thumbs._width;
startX = this._x;
right_menu._x = thumbs._x + menuWidth;
left_menu._x = thumbs._x - menuWidth;
left_menu._y = thumbs._y;
right_menu._y = thumbs._y;
}
thumbs
onFrame (35,afterPlacedObjectEvents) {
stop();
}
thumb6
on (rollOver) {
_parent._vx = 0;
}
on (rollOut) {
_parent._vx = _parent.speed;
}
on (release) {
_root.showImage("image6");
}
thumb5
on (rollOver) {
_parent._vx = 0;
}
on (rollOut) {
_parent._vx = _parent.speed;
}
on (release) {
_root.showImage("image5");
}
thumb4
on (rollOver) {
_parent._vx = 0;
}
on (rollOut) {
_parent._vx = _parent.speed;
}
on (release) {
_root.showImage("image4");
}
thumb3
on (rollOver) {
_parent._vx = 0;
}
on (rollOut) {
_parent._vx = _parent.speed;
}
on (release) {
_root.showImage("image3");
}
thumb2
on (rollOver) {
_parent._vx = 0;
}
on (rollOut) {
_parent._vx = _parent.speed;
}
on (release) {
_root.showImage("image2");
}
thumb1
on (rollOver) {
_parent._vx = 0;
}
on (rollOut) {
_parent._vx = _parent.speed;
}
on (release) {
_root.showImage("image1");
}

Do tego czegos potrzbuje przekazac nazwy zdjec z bazy
devnul
bycie zielonym nie zwalnia z robienia czegokolwiek i nie upoważnia do oczekiwania gotowców. wskazałem Ci drogę więc mógłbyś się troszkę wysilić i użyć wyszukiwarki w celu przybliżenia się do rozwiązania.
Mlodycompany
owszem. ale przy uzyciu wyszukiwarki trudno jest zrobic taka rzecz, takze zamiast nabijac posty moglbys powiedziec dokładnie jak to zrobic
devnul
pierwsze zapytanie jakie zadałem google
http://www.google.com/search?q=flash+read+...-8&oe=utf-8
jednak nie takie trudne prawda?
Mlodycompany
trudne nie trudne, ale zauwaz ten fakt ze swish max nie czyta plikow .fla a przyklady byly w .fla. Wiec prosze o gotowe rozwiazanie
devnul
Cytat
Wiec prosze o gotowe rozwiazanie

nie ten dział jeśli chcesz gotowca i z mojej strony kończę dyskusję bo widzę że nic to nie daje.
nevt
Przenosze z Przedszkola do Gotowe rozwiązania - Szukam ...
punkomuzykant
najłatwiej jest użyć sendandload
http://forum.php.pl/index.php?showtopic=88143&hl=

tu masz ładny przykład komunikacji między flashem i php wystarczy tyko zmienić kilka pierdoł
flashion
nie musisz danych z php formatować do postaci xml. przy takim połączeniu wystarczy, że te zmienne, które wysyłasz z php do flasha "wyprintujesz", np:
Kod
print "&ilezdjec=$ilezdjec"; // przeslanie ilosci zdjec
for($i=0;$i<$ilezdjec;$i++)
{
    $nazwa_zmiennej = 'images'.$i;
    print "&{$nazwa_zmiennej}=${'images'.$i}"; // przesłanie zmiennych: images0, images1 itd...
}

nigdy nie próbowałem przesyłać tablic do flasha, więc napisałem takim sposobem.

AS:
Kod
this.loadVariables("pobierz_zdjecia.php","POST");
this.onData = function ()
{
showImages(0);
}

function showImage(img) {
for (x=0;x<ilezdjec;x++) {
  if (this["images"+x] != this["images"+img]) {
   this["images"+x]._visible = false;
   trace(this["images"+x] add "=" add this["images"+x]._visible);
  }
}
  this["images"+img]._visible = true;
  trace(this["images"+img] add " visibility = " add this["images"+img]._visible);
}
onFrame (40,afterPlacedObjectEvents) {
javascript("alert('dupa')");
stop();
}


mogłem coś pomylić, więc z góry przepraszam winksmiley.jpg
Mlodycompany
to jest tak:
  1. <?php
  2. $zapyt = mysql_query('SELECT * FROM `fotki` WHERE `ID` = '1'');
  3. $ilezdjec = mysql_num_rows($zapyt);
  4. print "&ilezdjec=$ilezdjec";
  5. while($row = mysql_num_rows($zapyt)){
  6. $nazwa_zmiennej = $row[1];
  7. print "&{$nazwa_zmiennej}=${'images'.$i}";
  8. }
  9. echo('<object classid=\"CLSID:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0\" width=\"300\" height=\"400\" type=\"application/x-shockwave-flash\">
  10. <param name=\"MOVIE\" value=\"przewijani_ miniatur.swi\" />
  11.  
  12. <embed src=\"przewijani_ miniatur.swi\" width=\"300\" height=\"400\" pluginspage=\"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\" type=\"application/x-shockwave-flash\">
  13. </embed>
  14. </object>');
  15.  
  16. ?>

i kode w scena1
Kod
this.loadVariables("nowy.php","POST");
this.onData = function ()
{
showImages(0);
}

function showImage(img) {
for (x=0;x<ilezdjec;x++) {
  if (this["images"+x] != this["images"+img]) {
   this["images"+x]._visible = false;
   trace(this["images"+x] add "=" add this["images"+x]._visible);
  }
}
  this["images"+img]._visible = true;
  trace(this["images"+img] add " visibility = " add this["images"+img]._visible);
}
onFrame (40,afterPlacedObjectEvents) {

stop();
}

i podczas ładowania strony wyskakuje blad ze przekroczono maksymalny limit wczytywania strony. co jest zle??
sniezny_wilk
Cytat(flashion @ 25.05.2008, 09:44:09 ) *
nie musisz danych z php formatować do postaci xml. przy takim połączeniu wystarczy, że te zmienne, które wysyłasz z php do flasha "wyprintujesz", np:
Kod
print "&ilezdjec=$ilezdjec"; // przeslanie ilosci zdjec
for($i=0;$i<$ilezdjec;$i++)
{
    $nazwa_zmiennej = 'images'.$i;
    print "&{$nazwa_zmiennej}=${'images'.$i}"; // przesłanie zmiennych: images0, images1 itd...
}

nigdy nie próbowałem przesyłać tablic do flasha, więc napisałem takim sposobem.

AS:
Kod
this.loadVariables("pobierz_zdjecia.php","POST");
this.onData = function ()
{
showImages(0);
}

function showImage(img) {
for (x=0;x<ilezdjec;x++) {
  if (this["images"+x] != this["images"+img]) {
   this["images"+x]._visible = false;
   trace(this["images"+x] add "=" add this["images"+x]._visible);
  }
}
  this["images"+img]._visible = true;
  trace(this["images"+img] add " visibility = " add this["images"+img]._visible);
}
onFrame (40,afterPlacedObjectEvents) {
javascript("alert('dupa')");
stop();
}


mogłem coś pomylić, więc z góry przepraszam winksmiley.jpg


Proszę was litości, loadVariables to się 2 lata temu używało. Korzystaj z Flasha'a CSS3 i AS3 tam masz coś takiego jak remoting i AMFPHP, jeśli nie bardzo widzi się Tobie OOP we flashu i AS3, to skorzystaj z AMFPHP który również jest dostępny we Flashu 8 (+odpowiedni komponent bo w 8 nie ma wbudowanego remotingu), to jest naprawdę bardzo dobry i skuteczny sposób.
darecki
Może poczytaj tu:

http://www.amfphp.org

troszkę się zdublowałem ale chociaż podaje adres do AMFPHP biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.