2008-11-27 30 views
5

W tej chwili opracowuję dla potrzeb gry mały silnik graficzny 2D zorientowany na płótno i analizowałem kilka źródeł podpowiedzi do zastosowania w projekcie mojego systemu. Ale oczywiście najbardziej sprawdzonym rozwiązaniem jest flash, więc zastanawiałem się, w jaki sposób Flash jest w architekturze. Znalazłem kilka źródeł o działaniach Flasha, ale większość z nich jest bardzo prosta i ukierunkowana na projektantów i artystów, ale chciałbym dowiedzieć się więcej o wnętrznościach systemu. Kolejnym krokiem jest pobranie kodu źródłowego Flexa i przebrnięcie przez niego, ale wcześniej chciałbym mieć "przewodnik", aby jak najlepiej wykorzystać mój czas w bazie kodu. Wszelkie sugestie dotyczące dobrych zasobów i artykułów online?Jak działa Flash?

Dzięki!

Edit: Żeby było jasne, szukam wewnętrzne funkcjonowanie Flash, ponieważ moim celem jest, aby zrobić coś podobnego do Flash, ale nie tak silny oczywiście, że działa w przeglądarce bez wtyczek . Zupełnie czysty HTML + JavaScript.

Powodem, dla którego nie używam Flasha jako takiego, jest to, że nie spełnia on moich wymagań (darmowy + brak wtyczki), a ponieważ nie mam wsparcia Flash na moich docelowych platformach, poza tym wymyślam ponownie Koło tutaj dla zabawy i samokształcenia. Och i już wiem, jak używać Flasha :)

+0

Nie jest to bezpośrednia odpowiedź na twoje pytanie, więc trzymam to jako komentarz ... Czy znasz http://ejohn.org/blog/processingjs/? Jest to port przetwarzania do JavaScript, zamknij swój ostateczny cel ... Zestaw narzędzi Dojo JS pozwala również na rysowanie JS na przeglądarkach IE i obsługujących płótno. FYI. – PhiLho

+0

Nie odpowiada na moje pytanie w ogóle, ale jest to bardzo fajny projekt i podobne pod wieloma względami do tego, czego potrzebuję, patrząc na to. –

Odpowiedz

7

Cóż, w katalogu głównym treści Flash znajduje się obiekt sceniczny (instancja klasy Stage). Ten etap jest węzłem głównym drzewa obiektów wyświetlanych, z których każdy może zawierać zasoby graficzne (linie, pola tekstowe itp.) Lub inne obiekty wyświetlane. Jak "działa" Flash, to X razy na sekundę, Flash Player rysuje całe drzewo wyświetlania na ekranie. Gracz zbiera również dane wejściowe użytkownika (KeyboardEvents, itp.) Z systemu operacyjnego i dostarcza je do dowolnego obiektu, który się dla nich zarejestrował.

Twoim zadaniem twórcy treści jest zapełnienie tego Etapu dziećmi (typu DisplayObject lub dowolnej podklasy), które silnik Flash wyświetli na ekranie. Można go wypełnić niskopoziomowymi dziećmi, takimi jak Sprite i MovieClip oraz TextField, które są podstawowymi elementami budującymi zawartość Flash, lub można tworzyć instancje takie jak ScrollBar lub DataGrid, które są komponentami wyższego poziomu ze zwykłymi złożonymi wewnętrznymi działaniami.

Oczywiście można rozszerzyć dowolne z tych klas, aby uwzględnić własne niestandardowe elementy wizualne lub logikę klas, lub utworzyć nie-wizualne klasy, które nie są częścią drzewa wyświetlania. Możesz też załadować inną zawartość flash lub nawiązywać połączenia HTTP, itp. Itd.

To wszystko przy założeniu, że masz na myśli AS3. To pomaga? Jeśli nie, będziesz musiał uszczegółowić swoje pytanie. ;)

+0

Tak, to pomaga, ale gdybyś miał kilka dobrych linków do zasobów, byłoby jeszcze lepiej. –

+0

Um, powinienem być bardziej konkretny, twoje linki do dokumentów są bardzo pomocne, ale zastanawiałem się, czy były tam jakieś białe papiery lub dokumenty wzdłuż tych linii. –

+0

Widzę, dokąd zmierzasz. Rzeczy ogólnie są bardzo podobne do wykresu FL, który łączyłeś (ale z mniejszą liczbą pudeł "Urządzenia XXX" i myślę, że "System operacyjny" i "Bufor ramki" został częściowo zastąpiony przez haki wtyczki przeglądarki). Ale nie znam żadnych konkretnych dokumentów lub publicznych specyfikacji. – fenomas

1

Jeśli masz zamiar stworzyć grę, z dala od Flex. I szczerze mówiąc, patrząc na kod źródłowy, może to wprowadzić w błąd bardziej niż pomoc. Flex jest bardzo dobry dla aplikacji intensywnie wykorzystujących GUI i pomaga przyspieszyć rozwój takich produktów. Nie jest jednak bardzo szybki ani szczególnie dobrze nadaje się do gier.

Jedną z głównych zalet Flasha jest to, że nie musisz bardzo dbać o "wewnętrzne funkcjonowanie", chociaż podstawowe zrozumienie ich w naturalny sposób pomaga.

Flash Lite jest zupełnie inny niż pełnoprawnego brata, więc nie przykładaj do tego zbyt dużej uwagi.

Ponadto, z miłości do Boga, ucz się Actionscript 3.0 i trzymaj się z dala od Actionscript 2. 3.0 jest znacznie lepszy w każdy możliwy sposób (przynajmniej dla nas, programistów).

EDYCJA: Aby wyjaśnić: Istnieje pewne zamieszanie dotyczące terminu Flash. Wszystko składa się z trzech części, wtyczki uruchamianej w przeglądarce, "samej technologii" i narzędzia do tworzenia treści. Wszystkie one są po prostu nazywane Flash. Flex jeszcze bardziej zagmatwany. Jest to framework, który działa na Flash. Podobnie jak powiedzmy, Swing for Java (nigdy nie używałem tego, aby porównanie mogło być całkowicie błędne). Wszystko, co możesz zrobić w Flexu, jest również możliwe w Flash. Flex jest darmowym open source, ale IDE, Flex Builder nie jest. Program Flex Builder jest bardzo przydatny, nawet jeśli wykonujesz "czyste" projekty ActionScript. Ale jest też wiele tańszych alternatyw. Osobiście wolę FlashDevelop.

+0

Środowisko Flex jest prawdopodobnie całkiem dobre do budowy gier as3, ale tak, biblioteka flex nie jest tym, czego potrzebujesz – jcoder

+0

Tak, zgadzam się, przeczytałem tylko część kodu Flex, ale to wcale nie było to, czego szukałem dla. Błędnie wyobrażałem sobie, że kod Flasha został zawarty w OpenSource SDK Flexa, ale nie był to " –

+0

. Zauważ, że chociaż ogólnie Flash Player nie jest open source, Adobe niedawno opracowało silnik AS3, który powinien ujawnić istotną architekturę. Google "mozilla tamarin" dla informacji. – fenomas