Skocz do zawartości

Warunkowe włączanie extensions


DangBean

Rekomendowane odpowiedzi

Chciałbym wygenerować dwie różne wersje gry HTML5 i postawić każdą na innym serwerze. Oba serwery mają inne api do logowania użytkownika i do rejestracji score.

Napisałem dwa extensions do jednego i do drugiego serwera, ale nie wiem jak zrobić, żeby w jednej konfiguracji było dołączone jedno extension, a w drugiej - drugie.

Obejściem problemu jest zdefiniowanie stałej o innej wartości w każdej z konfiguracji i w zależności od tej stałej wywoływanie funkcji z odpowiedniego extension.

Tylko, że oba extension muszą być dokompilowane w obu wersjach, a swoje ważą.

Szukałem w dokumentacji i na forach i nic.

Może ktoś zna jakiś trick?

Odnośnik do komentarza
Udostępnij na innych stronach

  • Administratorzy

No jeśli chodzi o rozszerzenie, to chyba nie ma tak lekko, chociaż można stworzyć dwa różne configi i sprawdzać z którego gra została skompilowana, żeby odpalić odpowiedni.

Ale jeśli to są JSowe rozwiazania to można je zewnętrznie dodawać i zrobić małą bibliotekę która je wywołuje i po prostu w tagu <script> pliku HTML dodać coś lub nie :)

Odnośnik do komentarza
Udostępnij na innych stronach

Ale jeśli to są JSowe rozwiazania to można je zewnętrznie dodawać i zrobić małą bibliotekę która je wywołuje i po prostu w tagu <script> pliku HTML dodać coś lub nie :)

Kiedyś takie coś robiłem. Biblioteka była za duża i ze stroną wchodził loader, a reszta dynamicznie. Na LAN to działało, ale na słabym łączu czasem wciągało się nie po kolei, fragmenty się nie wciągały itp. W kazdym razie pod onreadystatechange trzeba było podczepić funkcję, która w zależności od statusu różnie reagowała. To samo trzeba by zrobić tutaj. Tylko, że jeśli w extension zdefiniujemy np funkcję js_load_lib(), to parametrem tej funkcji powinna być GMLowa funkcja obsługi działająca w zależności od otrzymanego statusu HTTP (obsługa eventu mówiąc po GMLowemu). Jeśli jako parametr javascriptu użyjemy funkcji GMLowej, to na bank nie zadziała. Nie próbowałem, ale w GML użycie nazwy funkcji, to nie jest wskaźnik na tą funkcję. To zresztą ciekawe pytanie czy dałoby się jakimś trikiem przekazać funkcję GML jako parametr do JS.

EDIT: DA SIĘ - jakby kogoś interesowało, mogę napisać jak.

 

W każdym razie to nie rozwiązuje problemu. Wyobraźmy sobie, że mamy dwa serwery dwóch baaardzo kochających się firm. Dostajemy od nich dwa api np.: api_pepsi.js oraz api_innacola.js. W powyższym rozwiązaniu, w GM mamy oba extensions i oba js ładujemy na serwer, a program dynamicznie rozpoznaje, które js załadować na stronę klienta. Ale na serwerze są oba. Chyba, że przy każdej aktualizacji na stronę pepsi nie wgramy api_innacola.js i vice versa. Sobie nie wyobrażacie jaka chryja może być jak się za którymś razem zapomni wykasować i corposecuriti na stronie innejcoli znajdzie api pepsi :D .

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...