StarSoft Multimedia

Przykłady

Wszystkie przykłady

Ustawianie rozdzielczości w projektach wieloplikowych
Przykład użycia DisplayMode Xtra


Pobierz pliki

DisplayModeExample_1.zip
Opis:
Pliki źródłowe do tego przykładu
Rozmiar:
86 kB
Wymagania:
Director MX
DisplayMode Xtra

Metoda WinAPI

W przypadku projektów złożonych z kilku plików .dir (wywoływanych instrukcją play movie) nie można korzystać z metod Domyślna oraz DirectX xtrasa DisplayMode, gdyż prowadzi to do niekorzystnego przełączania rozdzielczości w chwilach przechodzenia do innego filmu (pliku .dir) - objawia się to krótkim mignięciem ekranu. Należy więc użyć metody WinAPI.

Przywracanie rozdzielczości funkcją RestoreDisplayMode

Nie można także korzystać z automatycznego przywracania rozdzielczości w chwili opuszczenia filmu (opcja AutoRestore), gdyż również prowadzi to do przełączenia rozdzielczości.

Należy przyjąć zasadę, że rozdzielczość może być ustawiona automatycznie w pierwszym filmie (plik .dir służący do utworzenia projektora), jednak przywrócenie rozdzielczości musi nastąpić za pomocą za pomocą funkcji Lingo RestoreDisplayMode w każdym miejscu, w którym użytkownik może zamknąć prezentację i wrócić do systemu.

Tworzymy prezentację

Pokażemy więc, w jaki sposób można to zrealizować. Utworzymy prostą prezentację złożoną z trzech plików .dir. Pierwszy z nich posłuży do utworzenia projektora, dwa pozostałe będą wywoływane w trakcie pracy prezentacji. Pomiędzy filmami będzie można nawigować za pomocą prostych tekstowych przycisków. Zakończyć prezentację będzie można z każdego filmu, zarówno klikając na przycisk Zakończ, jak i wciskając klawisz Escape lub kombinację Alt+F4.

W pierwszej fazie utworzymy działającą prezentację bez DisplayMode Xtra, następnie dodamy xtrasa i zapewnimy poprawną obsługę zmiany rozdzielczości.

Plik Movie01.dir

Tworzymy plik o nazwie Movie01.dir. Ustawiamy wymiary sceny na 640 x 480. Umieszczamy na scenie tekst wskazujący, że jest to film nr 1. Tworzymy globalny skrypt typu Movie i dodajemy do niego poniższą treść:
on prepareMovie
  the centerStage = true
  the exitLock = true
  the keyDownScript = "gKeyDown()"
end

on gKeyDown
  if (the keyCode = 118) and (the optionDown) then
    -- Alt + F4
    gExit()
  end if
  if (the keyCode = 53) then
    -- Escape
    gExit()
  end if
end

on gExit
  quit
end
	
Komentarz do powyższego skryptu:

Instrukcja the centerStage = true zapewnia centrowanie sceny na ekranie, instrukcja the exitLock = true blokuje domyślne działanie klawisza Escape (zamknięcie prezentacji), natomiast the keyDownScript = "gKeyDown()" sprawia, że każde naciśnięcie dowolnego klawisza jest przechwytywane przez funkcję gKeyDown. W tej funkcji sprawdzamy, czy naciśnięto Alt+F4 lub Esc i jeśli tak, wywołujemy funkcję gExit. W tej chwili ta funkcja po prostu zamyka prezentację (quit).

Dodajemy 2 przyciski tekstowe wywołujące odpowiednio filmy Movie02.dir i Movie03.dir. Np. behavior dodany do przycisku Movie02 w najprostszym przypadku może mieć postać:
on mouseUp me
  play movie "Movie02.dir"
end
Dodajemy tekstowy przycisk Exit z następującym behaviorem:
on mouseUp me
  gExit()
end

Pliki Movie02.dir i Movie03.dir

Analogicznie tworzymy pliki Movie02.dir i Movie03.dir zakładając, że z pliku Movie02.dir można przejść do Movie01.dir i Movie03.dir, a z pliku Movie03.dir - do Movie01.dir i Movie02.dir.

Test działania prezentacji

Tworzymy projektor z pliku Movie01.dir i uruchamiamy go. Sprawdzamy poprawność wywoływania kolejnych filmów i zamknięcie prezentacji. Czas dodać ustawianie rozdzielczości przy użyciu xtrasa DisplayMode.

DisplayMode Xtra w Movie01.dir

Dodajemy DisplayMode Xtra do pliku Movie01.dir. Przyjmujemy następujące ustawienia opcji w oknie dialogowym:
Tryb graficzny: 640 x 480 x 32 x 0 (odświeżanie domyślne)
Ustaw przy starcie: Włączone
Przywróć przy zakończeniu: Wyłączone
Tryby alternatywne: nie używane
Metoda: WinAPI
Jak więc widać, przy starcie filmu zostanie automatycznie ustawiona rozdzielczość 640 x 480 przy użyciu Windows API. W chwili zamykania prezentacji musi być przywrócona oryginalna rozdzielczość - przy użyciu funkcji RestoreDisplayMode xtrasa DisplayMode. W naszym przykładzie wywołanie tej funkcji dodajemy do globalnej funkcji gExit, która odpowiada za zamknięcie prezentacji. A więc:
on gExit
  member("DisplayMode1").RestoreDisplayMode()
  quit
end

DisplayMode Xtra w Movie02.dir i Movie03.dir

Podobnie dodajemy DisplayMode Xtra do plików Movie02.dir i Movie03.dir, z jednym wyjątkiem: opcja Ustaw przy starcie musi być wyłączona, gdyż w chwili wywoływania tych filmów rozdzielczość będzie już ustawiona przez Movie01. Jednak ponieważ z tych filmów można zamknąć całą prezentację, niezbędne jest także dodanie instrukcji member("DisplayMode1").RestoreDisplayMode() do funkcji gExit, identycznie jak w pliku Movie01.dir.

Test końcowy

Ponownie tworzymy projektor z Movie01.dir i uruchamiamy go. W chwili startu projektora zostaje ustawiona rozdzielczość 640 x 480. Wywoływanie kolejnych filmów nie powoduje żadnego migania ekranu. Zamknięcie projektora w dowolny sposób przywraca oryginalną rozdzielczość.


Komentarze? -


Wszystkie przykłady

Ranking sprzedaży
Najczęściej kupowane produkty:
1. MediaPlayer Xtra
2. UltimateNet Xtra
3. StarMenu Xtra
Nowości
2008-03-27
Wszystkie nasze xtrasy są kompatybilne z Adobe Director 11.

Przetestowaliśmy nasze xtrasy w najnowszej wersji Directora (data rozpoczęcia sprzedaży 25.03.2008) i stwierdziliśmy, że większość z nich działa całkowicie prawidłowo.
10 najpopularniejszych
Najczęściej ściągane pliki:
MediaPlayer Xtra (57260)
StarMenu Xtra (23185)
MediaPlayer Exp. Xtra (18186)
DisplayMode Xtra (14347)
ProjectorLook Xtra (13315)
AnyShape Xtra (11875)
UltimateNet Xtra (11804)
MailTo Xtra (11575)
MediaPlayer Exp. Demo .exe (8624)
SmartOLE Xtra (7520)