Sayfalar

as2 etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
as2 etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

3 Aralık 2010 Cuma

AS2 Calışmaları 02 - Kodlarla Çizim

 Ayşen Hoca'nın derste gösterdiği bir örneğin nasıl olabileceğini düşündükten sonra bu örneği geliştirdim. Bir noktası haricinde hepsi kolay ama o noktayı bulmam benim için zahmetli olmuştu. O da çokgen çizim kısmıydı. Bunu teoride yapsam da kodlara dökemiyordum ama sonunda biraz da deneme yanılmayla olayı çözdüm.


this.createEmptyMovieClip("sekil_mc",this.getNextHighestDepth());
sekil_mc.createEmptyMovieClip("ciz_mc",this.getNextHighestDepth());


ilk önce kodlar yardımıyla sekil_mc adlı bir movieClip oluşturdum, daha sonrasında bu yeni oluşturduğum movieClip içerisine de kodlar aracılığıyla ciz_mc adlı bir movieClip oluşturdum. Şimdi neden böyle iki movieClip tercih ettiğimin sorusuna da tercih meselesi desem çok da abes kaçmaz sanırım zira tek bir moveiClip'de de toplanabilirdi olaylar ancak ben ilk movieClip'de temel fonksiyonları yönetirken (position, rotation, alpha, scale gibi) ikinsi yani ciz_mc'de ise çizilecek olan çokgeni yönetmiş oldum. Zaten menüdeki bu kaydırma çubuklarından köşe haricindeki tüm değişkenler sekil_mc'nün o andaki özelliklerini değiştirmeyi amaçlamakta. Köşe değişkeni de ciz_mc'nin köşe sayısını belirlemede işe yaramakta.

for (i=0; i<kose+1; i++)
{
        sekil_mc.ciz_mc.lineTo(
               xbas-r*Math.sin((i*derece)*(Math.PI/180)),
               ybas+r*Math.cos((i*derece)*(Math.PI/180))
        );
}

Yukarıdaki kod satırında görüleceği üzere şekil_mc'nin içerisindeki ciz_mc'de  belirlenen köşe sayısı kadar döngü kurulması söyleniyor.xbas pozisyonu ile ybas pozisyonunda bulunan şekilden r yarıçapı kadar uzak mesafedeki konuma geçip çizime başlanıyor. X'in sinüs değeri Y'nin de cosinüs değerini tercih etmişim. Çok da bi fark yok açıkcası başlangıç yönünün değişmesinden başka. Ancak hem X hem de Y için aynı değerler kullanılmamalıdır yani X için sin ve Y için sin veya X için cos ve Y için cos birliktelikleri tercih edilmemelidir zira istenmeyen sonuçlar meydana gelir bu durumda. Dairesel bir hareket için konumlardan birinin zıt trigonometrik özelliklere sahip olması gerekir ( sin-cos veya cos-sin gibi ). Derece değişkeni de 360/kose'nin matematiksel sonucuna eşittir yani o kadarlık bir dereceyle hareket etmesi sağlanmaktadır.

Denemek için tıklayınız.

2 Aralık 2010 Perşembe

AS2 Calışmaları 01 - Paint Örneği

Geçen sene sınav vakitlerinde aklıma gelen bir fikir sonucunda ortaya çıkan paint projesi:

Paint benzeri uygulamamla yaptığım örnek çizimim
 Daha bitirmediğim için şu andaki haliyle tanıtımını yapayım dedim. Yukarıdan aşağıya sırayla;
  • 1. Buton: Kare Fırça
  • 2. Buton: Daire Fırça
  • 3. Buton: Eğik Fırça
  • 4. Buton: Şekil Çizme Aracı
  • 5. Buton ve 6. Buton şimdilik çalışmıyor ama dışarıdan resim çağırma amaçlı hazırlamıştım.
  • Alt menü de çizim araçlarının RGB cinsinden rengini ayarlamakta kullanılıyor. 
  • Fırçanın büyüklüğünü ayarlamak için klavyeden " + " ve " - " tuşlarını kullanınız. Benim klavyem numeric pad sahibi olduğu için hiç laptop aklıma gelmedi. O yüzden biraz daha zahmetli olacak numeric pad sahibi olmayanlar için :(
AS2 kullanarak yapmıştım ve malesef ki pixeller ile çalışmayı bilmediğim için o sıralar olay bir nesneyi duplicate ederek ekrana yapıştırmaktan ibaret. Duplicate etme süresine göre farenin hızına yetişemeyebilir boyama işlemi. Bu yüzdenfareyi çok hızlı kullanmanızı önermem :) Olay kısaca böyle.. İyi denemeler :)
 
Uygulamaya erişmek için tıklayınız.

31 Ağustos 2010 Salı

tarihçesi ile flash

Günümüz oyun ve reklam sektörü başta olmak üzere, gerek internet ortamında, gerekse de mobil uygulamalarda çok sık karşılaştığımız veya kullandığımız flash; kolaylığı, erişebilirliği ve görselliği sayesinde vazgeçilmezler arasına yerleşmiş bulunmaktadır.

Sevgili Ayşen KARAMETE hocamızın bize ikinci sınıfta dediği gibi; "Flash ile yapılabilecekler sizin hayalgücünüzle sınırlı." Bu söze katılmamak elde değil zira Flash’ın en sonki dili olan Action Script 3 ile artık hayallerimizi gerçekleştirmemize bir adım daha yakınız.

Neden böyle pazarlamacı gibi konuşuyorum diyecek olursak? Şöyle ki; AS3 ile birlikte artış gösteren esneklik, verimlilik ve erişebilirlik beraberinde geliştirilen ek kütüphaneler ile 3D uygulamalarını web ortamında daha rahat gösterecek düzeye getirdi. Böylece artık daha interaktif web safyalarına sahip olup, 3D oyunları oynayabilecek düzeye geldik ve daha yenilikçi etkileşimlerde bulunup, daha farklı reklam politikaları izleyen şirketler gördük.

Bu yenilikçi dil için geliştirilmiş kütüphanelere örnek vermek gerekirse "Away3D" kesinlikle çok güzel bir örnek olacaktır. Zira piyasada "Papervision3D" isim yapmış durumdayken, "Away3D" güzel bir alternatif niteliğindedir. Bu iki kütüphane de 3D uygulamaları rahatça gerçekleştirmenize yarayan ortamı ve desteği sağlayacak fonksiyonlara sahip gelişmiş kütüphanelerdir.

İşler sadece bu 3D kütüphaneleri ile bitmiyor tabi. Yeni bir reklam yöntemine mi ihtiyacınız var? Yine AS3 için geliştirilmiş olan “Flartoolkit” tam ihtiyacınız olan şey. Gerek bir resim, gerek sabit bir video gerekse de bir webcam sizin kaynağınız olsun. Bu kaynağınızın beyaz üzerine siyah kalemle çizilmiş özel bir kareyi gördüğü zaman; o karenin yerinde olmasını istediğiniz 3D modelin gelmesini sağlayabilecek bir ortam söz konusu artık. bu 3D modeliniz sizin ürününüzün reklamını yapan bir karekter de olabilir, bir içeriğin anlatımını yapan bir materyal de olabilir.

Dahası da var :) “touchlib” kütüphanesinin AS3 için geliştirilmiş kısmı sayesinde evde yapabileceğiniz bir aygıt ile ( ki bu aygıtın maliyeti 20-30tl eder en kötü ihtimalle ) çoklu dokunma desteği olan uygulamalar geliştirebilir, web ortamında yayınlayabilir, gerekli kod bilgisine sahipseniz de oyunlar bile yazabilirsiniz.

Bu noktada eleştirel yaklaşmak gerekirse; AS3 ve kütüphaneleri halen geliştirilmektedir ve verimliliğinin artışı üzerine çalışmalar yapılmaktadır. Halen bazı noktalarda istikrarsız davrandıkları olabilmektedir. Action Script yapısı itibariyle insana yakın nitekilte bir dildir ve makineye yakın diller gibi bazı noktalara direk erişimi söz konusu değildir. Dolaylı yollardan erişime sahip olmasından dolayı da performans açısından her zaman verimli olmayabilir. Ancak bu; gelişme sürecinde, en istikrarlıya ulaşılması için kat edilmesi gereken bir adımdır.

Konuya devam edersek; bu ve benzeri kütüphaneleri ile giderek gelişmekte olan flash peki nasıl çalışmakta hiç merak ettiniz mi? İlk sürümünden itibaren aynı mantıkla çalışmakta olan Flash’da çizdiğiniz her bir eğri, doğru, açık veya kapalı şekilbir fonksiyonda tutulmakta. Çizdiğiniz şeklin konumu da değişse, boyutu da değişse bozulmamasının nedeni bu fonksiyonun temelinde sabit kalması. sadece içine girilen değerler değişmekte. Sabit bir tanım aralığında f(x)=y+2 fonksiyonu bir doğru çizecektir koordinat sisteminde.+2 değerini değiştirmek doğrunun y eksenindeki konumunu değiştirecektir. y’nin önündeki katsayıyı değiştirmek ise de doğrunun açısını değiştirecektir. Olayın mantığı bu şekilde işlemektedir benim verdiğim naçizane bir örnektir, flash’ın arkasındaki mantığı anlatmak amaçlıdır. Flash için bu çalışma mantığı ile vektörel bir programdır diyebiliriz. Zira bugün freehand desteği kesilmiş olsa da gerek freehand’de gerekse de illustrator, fireworks ve photoshop’ta da bu şekilde vektörel çizimler mevcuttur.

Burada noktada şunu da belirtmem gerekir ki Flash’ın yaratıcısı olan “Jonathan Gay”e bir teşekkür borcumuz vardır. Zira onun hayal gücü bugünkü ortamın oluşmasında ektili olmuştur. Jonathan Gay ve Flash1′e kadarki izlediği yol hakkında ayrıntılı bilgi almak için:

http://www.flashdersleri.com/html_dosyalar/flash1.html

http://tr.wikipedia.org/wiki/Adobe_Flash