2008-11-27 24 views
5

Şu anda bir oyun için küçük bir tuval odaklı 2D grafik motoru geliştiriyorum ve sistemimin tasarımına uygulamak için ipuçları için çeşitli kaynaklara bakıyordum. Ama açıkçası, orada en çok savaş kanıtlanmış çözüm, flaş, bu yüzden nasıl Flash mimarisi olduğunu merak ediyordum. Flash'ın çalışmalarıyla ilgili bazı kaynaklar buldum, ancak çoğu tasarımcı ve sanatçıya yönelik çok temel ve yönlendiriciydi, ancak sistemin bağırsakları hakkında daha çok şey öğrenmek istiyorum. Bir sonraki adım Flex'in kaynak kodunu indirmek ve bunun üzerinden geçmek, ancak bundan önce kod tabanındaki zamanımın en iyisini yapmak için bir "rehber" olmak istiyorum. İyi çevrimiçi kaynaklar ve makalelerden herhangi bir öneriniz var mı?Flash nasıl çalışır?

Teşekkürler!

Düzenleme: Daha net yapmak için Flash'ın iç işleyişini arıyorum çünkü amacım Flash'a benzer bir şey yapmaktır, ancak eklenti olmadan bir tarayıcıda çalışan elbette güçlü değil . Ne yazık ki saf HTML + Javascript.

Ayrıca Flash kullanmamamın nedeni, gereksinimlerimi karşılamaması (ücretsiz + eklenti yok) ve hedef platformlarımda Flash desteğim olmadığından, yeniden icat ettiğimden eğlence ve kendi kendine eğitim için tekerlek burada. Oh ve zaten Flash içeriği kökünde, Flash'ın :)

+0

Sorunuza doğrudan bir cevap değil, ben de bunu bir yorum olarak saklıyorum ... http://ejohn.org/blog/processingjs/? JavaScript'in işlenmesi, nihai hedefinizin kapanması için bir porttur ... Dojo JS araç seti, hem IE'de hem de tuval destekli tarayıcılarda JS çizimine izin verir. Bilginize. – PhiLho

+0

Benim soruma cevap vermiyor, ama bu çok güzel bir proje ve buna ihtiyaç duyduğum her şeye benzemeye benziyor. –

cevap

7

Peki nasıl kullanacağımı biliyorum bir sahne nesnesi (Stage sınıfının bir örneğidir) 'dir. Bu aşama, herhangi biri grafik varlıkları (çizgiler, metin alanları, vb.) Veya diğer görüntüleme nesnelerini içerebilen bir görüntüleme nesnesi ağacının kök düğümüdür. Flash "işleyişi", saniyede X kez, Flash oynatıcının tüm ekran ağacını ekrana çizmesidir. Oyuncu ayrıca işletim sisteminden kullanıcı girdisini (KeyboardEvents, vb.) Toplar ve bunları onlar için kayıtlı herhangi bir nesneye teslim eder.

Bir içerik oluşturucu olarak işiniz, bu Sahne Alanı'nı, Flash motorunun sizin için ekrana çizeceği alt öğelerle (DisplayObject veya herhangi bir alt sınıf) doldurmaktır. Flash içeriğinin temel yapı taşları olan Sprite ve MovieClip ve TextField gibi düşük seviyeli çocuklarla doldurabilir ya da normal karmaşık iç çalışmalarla daha üst düzey bileşenler olan ScrollBar veya DataGrid gibi şeyleri başlatabilirsiniz.

Ve tabii kendi özel görsellerin veya sınıf mantığı, dahil edilecek veya ekran ağacının bir parçası olmayan görsel olmayan sınıfları oluşturmak için bu sınıfların herhangi uzatabilir. Ve diğer flash içeriğe yükleyebilir veya HTTP bağlantılarını vb. Yapabilirsin.

Bu, AS3'ü kastettiğinizi varsayıyor. Bu yardımcı olur mu? Eğer değilse, sorunuzu daha spesifik hale getirmeniz gerekecek. ;)

+0

Evet yardımcı oluyor, ancak birkaç iyi kaynak bağlantınız varsa daha da iyi olurdu. –

+0

Um, daha spesifik olmalıyım, dokümanlar için bağlantılarınız büyük bir yardım kaynağıdır, ama merak ediyorum, bu hatlar boyunca –

+0

numaralı hatlarda bazı beyaz kâğıtlar veya belgeler var mı diye bakıyorum. Nesneler genellikle bağladığınız FL grafiğine çok benzer (ancak daha az "Device XXX" kutucuğuna sahip) ve "Device OS" ve "Frame buffer" ın kısmen tarayıcı eklenti kancaları ile değiştirileceğini düşünüyorum. Ancak, herhangi bir özel beyaz bildiri veya kamuya ait özellikleri bilmiyorum. – fenomas

0

Bulduğum en iyi bağlantı (gerçi oldukça acıklı) bu birisidir: Eğer bir oyun yapmak için gidiyoruz

Architecture of Flash Lite

1

, uzak Flex uzak dur. Ve dürüst olmak gerekirse, bunun için kaynak koduna bakmak size yardımcı olmaktan çok daha fazla kafa karıştırıyor olabilir. Flex, GUI yoğun uygulamaları için çok iyidir ve bu tür ürünlerin geliştirilmesini hızlandırmaya yardımcı olur. Ancak, çok hızlı değil, özellikle oyunlar için çok uygun. Flaş önemli avantajlarından

Bir tanesi temel bir anlayış doğal olarak yardımcı olsa gerçekten, çok "iç işleyişi" umurumda zorunda kalmamasıdır.

Flash Lite, tamamen büyümüş büyük kardeşinden oldukça farklıdır, bu yüzden ona fazla önem vermeyin.

Ayrıca, Tanrı'nın aşkı için, Actionscript 3.0'ı öğrenin ve Actionscript 2'den uzak durun. 3.0, akla gelebilecek her şekilde daha iyi (bizim için kodlayıcılar).

DÜZENLEME: Netleştirmek için: Flash terimi ile ilgili bazı karışıklıklar vardır. Tümünde üç bölüm var, tarayıcınızda çalışan eklenti, "teknolojinin kendisi" ve Yazma aracı. Bunların hepsi sadece Flash denir. Flex daha da kafa karıştırıcı. Flash'ın üstünde çalışan bir çerçevedir. Söylemek gibi, Java için Swing (Ben hiç kullanmadım bu yüzden tamamen karşılaştırma yanlış olabilir). Flex'te yapabileceğiniz tek şey Flash'ta yapılabilir. Flex açık kaynak kodlu, ancak IDE, Flex Builder çalışmıyor. Flex Builder, "saf" actionscript projeleri gerçekleştirseniz bile çok kullanışlıdır. Ama daha ucuz alternatifler de var. Şahsen ben FlashDevelop'u tercih ederim.

+0

Esnek ortam muhtemelen as3 oyunları oluşturmak için oldukça iyi ama evet esnek kütüphane ihtiyacınız olan şey değil – jcoder

+0

Evet Katılıyorum, sadece Flex kodunun bazılarını okuyordum, ama aradığım şey tam değildi için. Yanlışlıkla Flash motorunun kodunun Flex'in OpenSource SDK'sında yer aldığını hayal ettim, ancak ' –

+0

' oldu. Flash Player'ın genel olarak açık kaynak olmasa da, Adobe yakın zamanda AS3 motorunun OS'yi kendisinin temel mimarisini ortaya çıkarması gerektiğini söyledi. Bilgi için Google "mozilla tamarin". – fenomas

İlgili konular