Mam film Flash do wyświetlenia na pełnym ekranie w kiosku. Ponadto musi działać w oknie przeglądarki, ponieważ używam JavaScript do przeładowania strony w celu zresetowania filmu.

Problem polega na tym, że nie wyświetla się na pełnym ekranie, gdy wstawiam następującą linię do konstruktora:

stage.displayState = StageDisplayState.FULL_SCREEN;

Ale działa dobrze, jeśli umieszczę linię w obsłudze kliknięcia przycisku.

Uwaga: Nie działa, jeśli po prostu wywołasz funkcję obsługi z parametrem null.

Jak mogę ustawić go w trybie pełnoekranowym, gdy tylko się otworzy?

0
frbry 27 lipiec 2011, 17:47
1
Jeśli tworzysz aplikację kiosku, możesz rozważyć zbudowanie samodzielnej aplikacji w środowisku AIR, która nie wymaga ingerencji użytkownika w celu aktywacji trybu pełnoekranowego, a także posiada znacznie bogatszy zestaw interfejsów API zapewniających dostępność systemu i (zazwyczaj) ogólnie lepsza wydajność.
 – 
Chunky Chunk
27 lipiec 2011, 18:02
Dlaczego potrzebujesz strony zaktualizowanej za pomocą js?
 – 
Kasper Skov
27 lipiec 2011, 18:48
Interakcja użytkownika jest potrzebna, aby przejść na pełny ekran, wszystko inne byłoby naruszeniem bezpieczeństwa. Innymi słowy, kliknięcie myszą musi znajdować się w śladzie stosu, aby ten wiersz kodu zadziałał.
 – 
The_asMan
27 lipiec 2011, 20:25
Problem tkwi w całym odświeżeniu imo. To znaczy. odświeżasz stronę, aby film został ponownie uruchomiony. Dlaczego po prostu nie zresetujesz filmu za pomocą ActionScript? A przy pierwszym uruchomieniu wystarczy kliknąć. W ten sposób możesz również utworzyć samodzielny plik swf, jak wspomniano w odpowiedziach. Ps. Nie mam pojęcia, co to jest kiosk
 – 
Kasper Skov
27 lipiec 2011, 21:56
Wszystkie twoje pytania są zrozumiałe. Ale chodzi o to, że film jest zrobiony przez kogoś innego i ma bardzo brzydki kod do przeczytania. Więc nie chcę psuć rzeczy podczas próby resetowania. Niestety nie jest to film na osi czasu. Pomyślałem więc, że będzie łatwo, jeśli umieszczę go na stronie internetowej i odświeżę. Ale teraz zrobiłem kolejny film do załadowania i wyładowania, aby uzyskać efekt resetowania.
 – 
frbry
28 lipiec 2011, 02:25

3 odpowiedzi

Najlepsza odpowiedź

Ze względu na ograniczenia bezpieczeństwa dane wejściowe użytkownika są wymagane, aby przejść do pełnego ekranu podczas gry w odtwarzaczu HTML.

Cytuj dokumenty Adobe:

Tryb pełnoekranowy jest inicjowany w odpowiedzi na kliknięcie myszy lub naciśnij klawisz przez użytkownika; Film nie może zmienić stage.displaystate bez wprowadzania użytkownika. Flash Runtimes ograniczają wejście klawiatury w trybie pełnoekranowym. Dopuszczalne klawisze obejmują skróty klawiaturowe, które kończą tryb pełnoekranowy i nie-drukowane klucze, takie jak strzałki, przestrzeń, przesunięcie i klawisze kart. Skróty klawiaturowe, które zakończyły tryb pełnoekranowy to: Escape (Escape (Windows, Linux i Mac), Control + W (Windows), Command + W (Mac) i Alt + F4.

Jeśli biegasz w kiosku, rozważ użycie samodzielnego odtwarzacza SWF, który nie ma tych ograniczeń

2
Chris 27 lipiec 2011, 17:54

Prosta odpowiedź: nie możesz.

Jak wspomniano w dokumentacji , możesz zmienić DisplayState tylko w reakcji na interakcję użytkownika, czy to kliknięcie myszą, czy naciśnięcie klawisza. Jest to funkcja użyteczności, której nie spodziewałbym się zmienić w najbliższym czasie.

Pamiętaj, że to ograniczenie dotyczy tylko zawartości SWF działającej w przeglądarce.

1
shanethehat 27 lipiec 2011, 17:51

Uważam, że odpowiedź brzmi „nie możesz”. Ze względów bezpieczeństwa takie operacje można wykonać tylko w przypadku zdarzenia użytkownika. W przeciwnym razie możesz przejąć pulpit użytkownika i robić wszelkiego rodzaju nikczemne rzeczy, takie jak prezentowanie fałszywego okna logowania.

1
Bill Brasky 27 lipiec 2011, 17:51
Dzięki, ale praktycznie jestem tutaj użytkownikiem.
 – 
frbry
27 lipiec 2011, 17:54