Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ActionScript 3.0] Wybór pliku XML do galerii swf - sterowanie
Niedźwiedź
post 23.09.2009, 09:58:08
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 17.07.2009
Skąd: Wrocław//Lewin Kłodzki

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


Witam,
ogólnie to sprawa wygląda tak, że mam gotową galerię we Flashu napisaną przy użyciu XML - gdy podam ścieżkę do pliku XML i katalogu ze zdjęciami wszystko działa pięknie. Próbowałem przerobić ten skrypt by obsługiwał dowolną ilość galerii: każda galeria ma włąsny plik xml i własny folder ze zdjęciami. Dobrym pomysłem wydawało mi się użycie FlashVars i PHP w tym miejscu. No i tu pojawiły się schody, których nie mogę przejść.

Próbowałem tak:

Wstawienie flasha:
  1. <object type="application/x-shockwave-flash" data="gallery.swf" width="660" height="660">
  2. <param name="movie" value="gallery.swf" />
  3. <param name="FlashVars" value="source=<?php echo $_REQUEST['src']; ?>" />


Kod w AS:
Kod
(...)
var zrodlo:String = LoaderInfo(this.root.loaderInfo).parameters["source"];
loader.load(new URLRequest("images/"+zrodlo+"/"+id+type+".jpg"));


Próbowałem również tak:
Wstawienie flasha:
  1. <object type="application/x-shockwave-flash" data="gallery.swf" width="660" height="660">
  2. <param name="movie" value="gallery.swf?source=<?php echo $_REQUEST['src']; ?>" />


Jednak jedeny co do dostaje to tło - nie ładują się żadne zdjęcia. NO i tu prośba do Was, bo mi skończyły się pomysły...

Pozdrawiam,
Kamil
Go to the top of the page
+Quote Post
wookieb
post 23.09.2009, 10:07:24
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Google -> alcon
Zasysasz i instalujesz. Do flasha dołączasz debugowanie wartosci source do alcona i widzisz co rzeczywiscie skrypt odbiera od htmla.


--------------------
Go to the top of the page
+Quote Post
seth-kk
post 23.09.2009, 11:27:38
Post #3





Grupa: Zarejestrowani
Postów: 444
Pomógł: 79
Dołączył: 26.05.2009

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


strzelam ze fakt iz nie rzutujesz wartosci parametru na stringa moze byc powodem
komunikat bledu pomoglby bardzo


--------------------
Go to the top of the page
+Quote Post
Niedźwiedź
post 23.09.2009, 11:33:54
Post #4





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 17.07.2009
Skąd: Wrocław//Lewin Kłodzki

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


@seth-kk: wszystko kompiluje się bez błędów.
Go to the top of the page
+Quote Post
seth-kk
post 23.09.2009, 11:50:19
Post #5





Grupa: Zarejestrowani
Postów: 444
Pomógł: 79
Dołączył: 26.05.2009

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


a bledy w trakcie dzialania?


--------------------
Go to the top of the page
+Quote Post
Niedźwiedź
post 23.09.2009, 12:03:55
Post #6





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 17.07.2009
Skąd: Wrocław//Lewin Kłodzki

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


Kod
Error #2044: Unhandled ioError:. text=Error #2032: Stream Error. URL: file:///C|/Users/Kamilek/Desktop/gotowe/null.xml
    at Miniaturki$iinit()
    at flash.display::Sprite/flash.display:Sprite::constructChildren()
    at flash.display::Sprite$iinit()
    at flash.display::MovieClip$iinit()
    at DocObject$iinit()



Bo wyskakuje po kompilacja jak błąd wyjścia w Adobe Flash CS3. Wydaje mi się, że bład powinien wyskoczyć, bo flash nie ma dostępu do serwera PHP, więc nie może uzyskać wartości source z HTML'a. Chyba, że źle rozumuję. Na flashu się nie znam:P
Go to the top of the page
+Quote Post
seth-kk
post 23.09.2009, 12:18:51
Post #7





Grupa: Zarejestrowani
Postów: 444
Pomógł: 79
Dołączył: 26.05.2009

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


czy ten plik powinien nazywac sie null?
poza tym mozesz zainstalowac sobie playera z debugerem i w przegladarce ogladac komunikaty bledow


--------------------
Go to the top of the page
+Quote Post
Niedźwiedź
post 23.09.2009, 12:40:53
Post #8





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 17.07.2009
Skąd: Wrocław//Lewin Kłodzki

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


To że błąd wyrzuca null wynika właśnie z tego że po kompilacji we flashu nie ma zmiennych we FlashVars. Wersji playera z debuggerem nie ma w paczce w repo arch linuxa (a na nim mam serwer php).

Stworzyłem sobie prosty plik flasha, zeby przetestowac co dostaję z htmla, w pliku flasha sa linie:

Kod
import flash.display.LoaderInfo;
var zrodlo:String = LoaderInfo(this.root.loaderInfo).parameters["source"];
trace(zrodlo);


Po przetworzeniu nie wyświetla się nic. Jesli do FLashVars podstawię sztywną wartość zmiennej (jakiś tekst a nie pobranie wartości przez PHP), to również nie wyświetla się nic. Co w sumie mnie dziwi bardoz, bo gdyby zmienna nie miała wartości to chyba powinienem dostać null-a.

Takie głupie pytanie mam - obsługi FlashVars nie muszę w żadnym pliku konfiguracyjnym włączać?
Go to the top of the page
+Quote Post
wookieb
post 23.09.2009, 12:54:17
Post #9





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




a co ja pisałem o alconie? Przeciez jak dasz trace i wrzucisz do htmla taki swf to nigdy ci nic nie wyswietli.


--------------------
Go to the top of the page
+Quote Post
Niedźwiedź
post 23.09.2009, 20:18:38
Post #10





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 17.07.2009
Skąd: Wrocław//Lewin Kłodzki

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


@wookieb: Dzięki, przegapiłem posta.

Więc tak - alcon zwraca mi poprawne wartości, czyli wszystko jest tak powinno być:/ Sprawdzałem też ścieżkę w ten sposób:

Kod
loader.load(new URLRequest("images/gallery/"+id+type+".jpg"));


I wyświetliło zdjęcia jak powinno. Więc czemu w przypadku

Kod
var zrodlo:String = LoaderInfo(this.root.loaderInfo).parameters["source"];
loader.load(new URLRequest("images/"+zrodlo+"/"+id+type+".jpg"));


nie działa?
Go to the top of the page
+Quote Post
wookieb
post 23.09.2009, 20:22:15
Post #11





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




No wlaśnie... Tu już chodzi o pewne właściwości umieszczenia pliku flash. Nie dodałeś obsługi blędów do twojego loadera dlatego nie masz dokładnej komunikatu błędu.

Powiedz co dokladnie zwraca ci alcon i czy ścieżka jest poprawna dla flasha.
Sprawdź jeszcze czy masz
  1. <param name="allowDomain" value="all" />
jezeli nie zadziala mozesz dodac
  1. <param name="allowScriptAccess" value="always" />


Ten post edytował wookieb 23.09.2009, 20:24:27


--------------------
Go to the top of the page
+Quote Post
Niedźwiedź
post 23.09.2009, 21:32:20
Post #12





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 17.07.2009
Skąd: Wrocław//Lewin Kłodzki

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


Cytat(wookieb @ 23.09.2009, 21:22:15 ) *
No wlaśnie... Tu już chodzi o pewne właściwości umieszczenia pliku flash. Nie dodałeś obsługi blędów do twojego loadera dlatego nie masz dokładnej komunikatu błędu.


Hmmm, ja flasha w zasadzie nie znam i trochę nie bardzo rozumiem o co Ci chodzi.

Cytat(wookieb @ 23.09.2009, 21:22:15 ) *
Powiedz co dokladnie zwraca ci alcon i czy ścieżka jest poprawna dla flasha.

no mi wyświetla tylko:
[I] gallery
czyli wartość zmiennej, bo to sprawdzałem.

Cytat(wookieb @ 23.09.2009, 21:22:15 ) *
Sprawdź jeszcze czy masz
  1. <param name="allowDomain" value="all" />
jezeli nie zadziala mozesz dodac
  1. <param name="allowScriptAccess" value="always" />


Dodałem te dwie linie bo ich brakowało. Dalej to samo.
Go to the top of the page
+Quote Post
wookieb
post 23.09.2009, 21:36:27
Post #13





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Wystaw proszę to publicznie abyśmy mogli zobaczyć co jest nie tak.


--------------------
Go to the top of the page
+Quote Post
Niedźwiedź
post 23.09.2009, 21:45:12
Post #14





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 17.07.2009
Skąd: Wrocław//Lewin Kłodzki

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


paczka rar ~1 mb

Glaeria pochodzi z kursu eduweb. Cztery pliki *.as + 1 fla. Linie znajdują się w plikach Minaturki.as, Mianturka.as, BigFoto.as.

Dzięki za pomoc
Go to the top of the page
+Quote Post
wookieb
post 24.09.2009, 08:09:37
Post #15





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Problem polegał na tym, że klasa Miniaturka nie miałas dostępu do parametru (bark dostepu do uzytych wlasciwosci), dlatego trzeba bylo przekazac źródło do klasy miniturki. Zmiany:

Miniaturki.as
Kod
private var src:String;
        public function Miniaturki():void {
            var zrodlo:String = String(LoaderInfo(this.root.loaderInfo).parameters["source"]);
            this.src = zrodlo;
            
            loader = new URLLoader();
            loader.load(new URLRequest(zrodlo+".xml"));
            loader.addEventListener(Event.COMPLETE,onLoadXMLComplete);
        }
        private function onLoadXMLComplete(event:Event):void {
            xml1 = new XML(URLLoader(event.target).data);
            var i:Number;
            mini = new Array(xml1.obrazek.length());
            count = xml1.obrazek.length();
            //ustawienia konfiguracji
            MovieClip(parent).odstep = Number(xml1.attribute("speed"));                      //+
            MovieClip(parent).propShadow = Number(xml1.attribute("shadow"));                 //+
            MovieClip(parent).propFontName = xml1.attribute("fontName");                     //+
            MovieClip(parent).propFontSize = xml1.attribute("fontSize");                     //+
            MovieClip(parent).propFontColor = xml1.attribute("fontColor");                   //+
            MovieClip(parent).propNBorderColor = xml1.attribute("nborderColor");             //+
            MovieClip(parent).propABorderColor = Number(xml1.attribute("aborderColor"));     //+                  
            
            for (i=0;i<xml1.obrazek.length();i++) {
                mini[i] = new Miniaturka(xml1.obrazek[i].attribute("id"),i,MovieClip(parent).propShadow,MovieClip(parent).propBg, this.src);
                mini[i] = addChild(mini[i]);
                mini[i].x = i*(120+10);
            }
            
            MovieClip(parent).setIlosc(0);
            
            setInterval(intervalM,10);
        
            MovieClip(parent).setTitle(xml1.obrazek[0]);
        }


Miniaturka.as
Kod
public function Miniaturka(id:String,index:Number,isShadow:Number,bg:String, zrodlo:String):void
        {
            
            this.isShadow = isShadow;
            this.id = id;
            this.bg = bg;
            this.index = index;
            tryb = false;
            
            var loader:Loader = new Loader();
            loader.load(new URLRequest("images/"+zrodlo+"/"+id+"s.jpg"));
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoadComplete);
            loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onError);
            
            this.alpha = 1;

            button = new Sprite();
            button.graphics.beginFill(0x000000,0);
            button.graphics.drawRect(0,0,120,90);
            button.graphics.endFill();
            button.buttonMode = true;
            addChild(button);

            button.addEventListener(MouseEvent.MOUSE_OVER,onOver);
            button.addEventListener(MouseEvent.MOUSE_OUT,onOut);
            button.addEventListener(MouseEvent.CLICK,onClick);
            
            ramka.gotoAndStop(1);
        }


Ten post edytował wookieb 24.09.2009, 08:10:32


--------------------
Go to the top of the page
+Quote Post
Niedźwiedź
post 24.09.2009, 10:05:35
Post #16





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 17.07.2009
Skąd: Wrocław//Lewin Kłodzki

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


wookieb, thx:) Wszystko pięknie śmiga, wielkie dzięki.

Ten post edytował Niedźwiedź 24.09.2009, 17:20:10
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 22:26