Forum'da ara:
Ara


Yazar Mesaj
Mesaj31.08.2008, 18:24 (UTC)    
Mesaj konusu:

Merhaba ,
Paylaşımınız Güzel Olmuş
Başarılar Dilerim
Mesaj01.09.2008, 14:47 (UTC)    
Mesaj konusu:

sanalsahne yazmış:
Merhaba ,
Paylaşımınız Güzel Olmuş
Başarılar Dilerim
Wink
Mesaj01.09.2008, 17:18 (UTC)    
Mesaj konusu:

Flash Değişken Tanımlama

Bu dersimizde flash'ta değişken tanımlayarak ve bu değişkenleri kullanarak, animasyonumuza interaktiflik katmayı öğreneceğiz. Bunun için en güzel animasyon hesap yapabilen bir animasyon olabilir. Boş bir çalışma sayfasında CTRL+L'ya basıp kütüphanemizi açalım. Options düğmesini kullanarak "new symbol" ile yeni sembol yaratalım. Ancak "behavior" yani davranış biçimi olarak button seçelim. Button'un isminede "rakam1" diyelim. Karşımıza gelen ekrana küçük bir kare çizelim ve içine "1" rakamını yazalım. Sonra tümünü kopyalayarak yeni bir button daha oluşturup, buraya yapıştıralım. Ve her yeni button'a bir rakam verelim. Şimdi elimizde üzerinde "0"dan "9"a kadar olan 10 adet düğme oluştu. Aynı yöntemle "+" , "-" , "/" , "*" , "=" , "." işlemlerini ifade edecek düğmeleri de yapalım.Ve devam edelim, bu sefer üzerinde "CE" , "C" , "MRC" , "M+" yazan düğmelerinide yaparak tüm düğmelerimizi oluşturalım. Biz buraya kadar ne yaptık? Toplam 20 adet düğme yaptık. Bunların 10 tanesi rakamları ifade ediyor. Bir tanesi noktalamayı ifade ediyor. Beş tanesi toplama, çıkarma, çarpma, bölme ve eşittiri ifade ediyor. Birisi hafızaya almayı ifade ediyor. Birisi hafızayı göstermeyi, diğerleride ekranı silme ile tüm işlemleri silmeyi ifade ediyor. Yani basit bir hesap makinasında olması gereken herşey var. Bunu yapmayı öğrendikten sonra fonksyonları arttırmak sizin elinizde.

Artık Scene1 yazılı ekranımıza dönebiliriz. Yaptığımız tüm düğmeleri ekrana sürükleyerek düzgün bir şekilde dizelim. Sonra sahnenin üstüne bir "text field" koyalım. Bunu alet kutusundaki "A" text dümesine basıp, modifier kısmındaki abl yazılı düğmeye basarak yapabilirsiniz. Şimdi sahnemizde hesap makinamızın tüm tuşları ve ekranı oluşmuş oldu. Hazır hesap makinamızın ekranını yapmışken üzerinde sağ tıklayıp, properties'ine girelim. Açılan pencerede en üstte yazan variable kısmına "ekran" yazalım. Buraya "ekran" yazmamızın nedeni, ileride yazacağımız program akışına göre ekran değişkenine istediğimiz değeri atayabileceğiz. Ve bu değişkene atadığımız değerleri "text field" kısmında görebileceğiz.

Artık hesap makinamız görünüş itibarı ile hazır sayılır. Şimdi ilk değişkenlerimizi tanımlayalım. Layer 1'de duran tek keyframe'in üstüne sağ tıklayıp, properties'inden Actions'a geçelim. Komut listesinden "Set Variables"e basalım. Yan tarafta iki adet "text field" yani yazı yazabileceğimiz alan çıktı. Birisi "variable"; yani değişkenimiz, diğeri "value"; yani değişkene atayacağımız değer. Birinci değişkenimize "hafiza" diyelim ve değer olarak "0" atayalım.

Dikkat: Değişken isimlerimizde asla tükçe karakter bulunmamalı. Zaten yazmak istediğiniz zaman bir uyarı mesajı alacaksınız. İkinci konu, değişkenimiz ve değerinin özelliği nasıl olmalıdır. Yani değişkenimizin alfanümerik karakter özelliğe sahip olmasını istiyorsak bunu çift tırnak içinde tanımlamalıyız. Aynı şey değeri içinde geçerlidir. Eğer rakamsal özelliğinden yararlanacaksak, bu sefer tırnak işaretlerini kaldırmalısınız. Bunu en sağda bulunan "abc - string literal" yada "= - expression" düğmesine basarak yapabilirsiniz. "abc" string literal, değişkenlerimizi alfanümerik olarak yorumlar ve çift tırnak içine alır. "=" expression ise değişkenlerimizi rakam gibi yorumlar ve tırnak içine almaz. Bunu bir örnekle anlatalım. Diyelimki rakam1 ve rakam2 isimli iki değişkenimiz var, değerleride 100 ve 200 olsun. Bunları çift tırnak içine alırsak, yani string literal yaparsak, bu iki değeri "+" ile toplamaya kalktığımızda yeni değerimiz "rakam1rakam2" olacaktır. Ama çift tırnak içine almazsak, yeni değerimiz 300 olur.

"rakam1"="100" , "rakam2"="200"
"sonuc"="rakam1"+"rakam2"
"sonuc"="rakam1rakam2"
rakam1=100 , rakam2=200
sonuc=300

İkinci değişken olarakta "ekran" diyelim ve değer olarak yine "0" atayalım. Değişkenlerimizi tanıttıktan sonra "Stop" komutunu vererek buradaki işimizi bitirelim. "hafiza" değişkenimiz aslında "M+" tuşuna basıldığı zaman atayacağımız değer. "ekran" ise hesap makinamızın ekranındaki değerdir ve şimdilik ikiside sıfırdır. İşlemlerimiz bittiyse aşağıdaki gibi bir komut satırı çıkacaktır.

Set Variable: "hafiza" = "0"
Set Variable: "ekran" = "0"
Stop

Layer1'deki zaman eksenine bir frame daha yerleştirelim. Ve bu frame'in üzerinde sağ tıklayıp properties'ini açalım. Actions'a geçmeden önce "Label" kulakçığını tıklayalım ve "name" kısmına "RakamEkle" yazalım. Bu şekilde ikinci frame'in sadece hesap makinamızın ekranına rakam eklemek olduğunu söylüyoruz. Bu "RakamEkle" ismini daha sonra çağırarak kullanacağız. Artık "Actions"a geçebiliriz. Şimdi komutlarımızı yazmadan önce düşünelim. Her bir rakam için yaptığımız buttonlardan gelecek değere bir değişken vermek lazım. Bu değişkene "rakam" diyebiliriz. Basitçe "ekran" değişkenine "rakam" değişkenini atarsak ekranımızda rakamı görürüz. Yani "Set Variable: "ekran" = rakam". Ama bu şekilde asla iki ve daha üstü basamaklı sayıları yazdıramayız. Her yeni rakama bastığımızda önceki rakam silinecektir. Bir de arka arkaya nokta basılmasını engelleyemeyiz. O zaman şöyle bir şey yazalım:

If (ekran eq "0" and not(rakam eq "."))
Set Variable: "ekran" = rakam
Else
Set Variable: "ekran" = ekran & rakam
End If

İlk önce artıya basarak If komutunu çağırın. Yan tarafta "Condition" isimli bir yazı alanı çıkacak. Buraya değilde onun yanındaki "=" işaretine basarak karşımıza gelecek pencereye yazalım. Parantez işaterini kendisi yazdığından bizim yazmamıza gerek yok. "ekran" yazdıktan sonra "operator" kısmında bulunan eq ifadesine çift tıklayın. Tırnak içinde sıfır yazın. Sonra yine "operator"dan "and" ve "not" ifadelerine çift tıklayın. Sonrada parantez içinde rakam yazıp "operator"dan "eq", ve tırnak içinde nokta yazıp bitirin. "Else" ifadesi için "Condition" penceresinin altındaki "Add Else/Else If Clause" düğmesine basın ve nerede kullanmak isterseniz "Actions" penceresinin üstündeki ok işaretleri ile kaydırın.

Şimdi gelelim ne yaptığımıza. Eğer ekran değişkenimiz sıfırsa ve rakam değişkenimiz nokta değilse (burada noktaya iki kere basılmasını önleyelim) ekran değişkenimize rakam değişkenini ata. Değilse (Else) ekran değişkenimize ekranla birlikte rakam değişkenimizi ata. Yani ekranda sıfır yazıyor ve rakamımız nokta değilse hangi rakama bastıysak onu ekrana yaz. Yok eğer ekranda bazı rakamlar varsa o zaman onun yanına yeni bastığımız değeride yaz. Fakat dikkat ediyormusunuz, değişkenimiz alfanümerik, değeri ise rakamsal şekilde ifade ediliyor. Eğer değerini de alfanümerik yapmaya kalkarsak o zaman ekrana yazı ile "rakam" yada "ekran&rakam" yazılacaktır. Evet herhalde olmuştur. Ama birşeyler eksik. Kullanıcı bir işlem yapıp eşittire bastıktan sonra tüm değerleri sıfırlamamız gerekir. O zaman bir değişken daha tanımlayalım ve işlem yapıldıktan sonra o değişkene bir değer verelim. Eğer bu değişkenimiz verdiğimiz değere eşitse işlem yapılmış sayıp tüm değişkenleri (hafıza hariç) sıfırlayalım.

If (islemtamam = 1)
Set Variable: "islemtamam" = "0"
Set Variable: "nokta" = "0"
Set Variable: "ekran" = "0"
End If
If (ekran eq "0" and not (rakam eq "."))
Set Variable: "ekran" = rakam
Else
Set Variable: "ekran" = ekran & rakam
End If

Evet artık tamamdır. Şimdi zaman eksenine bir frame daha yerleştirip, işlem yaptırma komutlarına geçebiliriz. Üçüncü frame'e sağ tıklayıp properties'inden "label" kulakçığına tıklayın ve "name" kısmına "IslemYap" diyelim ki bu ismi çağıdığımızda işlem yapılsın. Toplama, çarpma, çıkarma ve bölme işaretlerine basınca bir değişken vereceğiz. Bunun adı "islem" olsun. Şimdi herhangi bir işlem işaretine basmadan önceki ekran değeri ile basıldıktan sonraki ekran değeri, iki ayrı değişkeni ifade edeceğinden; işlem işaretine basıldıktan sonraki ekran değerini başka bir değişkene atamamız lazım. Mesela "oncekiekran". Bu atamayı işlem tuşlarında yapacağız. Artık işlemleri yaptırabiliriz. Eğer işlem değişkeni "+" ise "ekran" değişkenine "oncekiekran" ile "ekran" değişkenini toplayıp ata. Yani ekrana yazdır. Tüm bu işlemleri sırası ile yazarsak sonuç aşağıdaki gibi olur. En altta iki değişken tanımlaması dikkatinizi çekmiş olabilir. "islem" değişkenini sıfıra eşitlememizin nedeni, herhangi bir işlemin sonunda eşittire bastıktan sonra, işlem değişkeni en son değeri itibari ile dikkate alınacağından, ikinci işleme başladığınız zaman, işlemler karışacaktır. "islemtamam" değişkenini de bir önceki frame'de, yani "RakamEkle" bölümünde kullanmak üzere "1" değerini verdik.

If (islem eq "+")
Set Variable: "ekran" = oncekiekran + ekran
End If
If (islem eq "-")
Set Variable: "ekran" = oncekiekran - ekran
End If
If (islem eq "*")
Set Variable: "ekran" = oncekiekran * ekran
End If
If (islem eq "/")
Set Variable: "ekran" = oncekiekran / ekran
End If
Set Variable: "islem" = "0"
Set Variable: "islemtamam" = "1"

Şimdi rakamlarımıza geçelim. Sıfır rakamının üzerinde sağ tıklayıp Actions'ı açın. Burada ilk önce rakam değişkenine üzerinde yazdığı rakamı atayalım. Sonrada "RakamEkle" frame'ine göndermemiz lazım. Bunu "Call" komutu ile yapabiliriz. "Call" ("RakamEkle") dediğimiz zaman "Label" "name"i "RakamEkle" olan frame'i çağırmış oluyoruz.Tüm rakamlar için aynı işlemi yapın.

On (Release)
Set Variable: "rakam" = "0"
Call ("RakamEkle")
End On

Sıra geldi nokta işaretine. Burada dikkat edilmesi gerekn tek bir şey var oda üst üste nokta işaretini basmayı engellemek. Bunu basit bir if dönüsü ve değişken tanımlama ile yapabiliriz. "rakam" değişkenine "." değerini verdikten sonra, yine "RakamEkle" frame'ini çağırıp işyaptırıp, ardından da nokta değişkenine doğru, yani "true" değerini atamalıyız. En baştada, eğer nokta doğru değilse yada yanlışsa devam et aksi takdirde işlem yapma dersek bu iş olur.

On (Release)
If (nokta = false)
Set Variable: "rakam" = "."
Call ("RakamEkle")
Set Variable: "nokta" = true
End If
End On

Şimdi de işlem düğmelerimize bakalım. "islem" değişkenimize üzerinde yazan işlem işaretini değer olarak atayalım. Sonrada ekranda bulunan değeri başka bir değere atayalımki bundan sonra yazacağımız değer karışmasın. Mesela işlem düğmesine basmadan önceki ekran değerini "oncekiekran" olarak değiştirelim. Artık ekrana ne yazarsanız yazın daha önce yazdığınız değer kaybolmayacaktır. Ancak kullanıcı eşittir'e basmadan da arka arkaya işlem yapabilir. Mesela 3 adet değeri toplamaya kalktığında her seferinde eşittire basmaktansa, her değeri girdikten sonra, işlem düğmesine basabilir. Bunun için en başta "IslemYap" isimli frame'i çağırıp işlem yaptırmamız lazım. Onu da "Call" ile yapabileceğimizi öğrenmiştik.

On (Release)
Call ("IslemYap")
Set Variable: "islem" = "+"
Set Variable: "oncekiekran" = ekran
End On

Eşittir işaretine basınca sadece "IslemYap" frame'ini çağırmamız yeterli olacaktır.

On (Release)
Call ("IslemYap")
End On

"CE" düğmesine basınca herşeyi sıfırlamamız gerekir. Ekrana sıfır yazacağız, "islem"in değerini boşaltacağız ve diğerlerini yanlış olarak yani "false" olarak değiştireceğiz.

On (Release)
Set Variable: "oncekiekran" = false
Set Variable: "ekran" = "0"
Set Variable: "islem" = ""
Set Variable: "islemtamam" = false
Set Variable: "nokta" = "false"
End On

"C" düğmesine bastığınız zaman en son yazdığınız rakamı silmesi için sadece "ekran" değişkenine sıfır atamak ve nokta işaretini yazdırabilmek için "false" değerini vermek yeterli olacaktır.

On (Release)
Set Variable: "ekran" = "0"
Set Variable: "nokta" = false
End On

"M+" düğmesi ekranda yazılı olan rakamı hafızaya almak içindir. O zaman en başta verdiğimiz "hafiza" değişkenine "ekran"daki değeri atamamız lazım. Ancak hafıza her seferinde toplanmak istendiğinde en son "hafiza" değişkeni ile "ekran" değişkenini toplamak lazım.

On (Release)
Set Variable: "hafiza" = hafiza + ekran
End On

En son olarak hafızadaki değeri ekrana yazdırıp sıfırlayan "MRC" düğmesine bakalım. "ekran" değişkenine "hafiza" değişkeninin değerini atamalıyız. "hafiza" değişkenini sıfırlamalıyız. "islemtamam" değişkenide "true" yani doğru yapmalıyız. Artık hesap makinamızı kullanabiliriz. İsterseniz ilave tuşlar koyabilirsiniz. Mesela karesini alma, karekök... Ama bu işlemler için eşittir işaretine basmamıza gerek olmadığından ilgili düğmenin actions'ında yapmamız gerekir.

On (Release)
Set Variable: "ekran" = hafiza
Set Variable: "hafiza" = "0"
Set Variable: "islemtamam" = true
End On
Mesaj02.09.2008, 05:16 (UTC)    
Mesaj konusu:

Flash ve Word ile 3B Animasyon

Flash web dünyasında hızla ilerleyen bir standart, eğer flash açık kaynak olsaydı sanırım şimdiye dek tüm web tarayıcılar için bir standart haline gelirdi. Flash ile efekt oluştururken bir çok yan program da kullanılabilir, fakat ben bugün farklı bir alternatiften bahsetmek istiyorum.

Bildiğiniz gibi normalde Lightwave, 3D Studio Max ve Autocad gibi programlar kullanılarak 3B flash animasyonları hazırlanabiliyor, az sonra Word ile Flash'ı birlikte kullanarak 3B bir nesne oluşturacak ve bunu hareketlendireceğiz. Garip geldi değil mi?

Aslında çok basit bir mantığa sahip, okuduktan sonra ne kadar kolay olduğunu siz de göreceksiniz. (Bu arada bizim için önemli olan 3D çizim çubuğu olduğu için bu yaptıklarımızı Excel, Powerpoint vs. ile de yapabiliriz)

* Öncelikle, Word'ü ve Flash'ı açalım, Word menülerinden Görünüm/Araç Çubukları/Çizim'i açalım.

* Çok büyük olmayacak bir kare çizelim.

* Şimdi kareyi seçip alttan 3D bölümünü aktifleştirelim. (Sağ altta) Burada dikkat etmeniz gereken ana unsur, çizdiğiniz şeklin kenar boyutu ile 3D'nin nokta boyutunun bir birini tutması, aksi takdirde nesne hareketlendirmede bazı sorunlar çıkabiliyor.

* Evet, şimdi tasarımınıza göre bir renk ve yüzey kaplama seçeneğini aktifleştirip görünüm için son kontrolleri yapın. İşlem tamamlandıktan sonra nesneyi seçin ve Ctrl+C ile kopyalayın.

İşin en temel kısmını tamamladık, bundan sonrası çocuk oyuncağı Wink şimdi görev çubuğundan Flash'ı tıklayın ardından ilk sahnenin ilk çerçevesini seçin.

* Ctrl+V ile nesneyi yapıştırın.

Şimdi tekrar Word'e geçiyoruz,

* Nesne'yi çift tıklayın. Boyut sekmesini tıklayın ve döndürme için animasyonunuzun hassasiyetine göre bir açı girin, örneğin ben 5 derece kullanıyorum. Unutmayın derece azaldıkça animasyonun boyutu artacaktır. Fakat kalite ve yumuşaklık yükselecektir.

Bundan sonrası ingilizcede "maintance" Türkçe'de "hammallık" diye tabir edilen kısım,

Döngü: > Word'e dön açıyı 5 derece arttır, Ctrl + C > Flash'a dön sonraki çerçeveye açısı değişmiş şekli yapıştır.

Bu işlemi animasyon istediğiniz açıyı yakalayan dek sürdürün.

Bundan sonrası sizin hayal gücünüze ve yaratıcılığınıza kalmış Wink Unutmayın sadece kare kullanma zorunluluğunuz yok. 3B yapabildiğiniz her türlü nesne üzerinde Word/Flash ikilisini kullanarak 3B basit Flash animasyonları yapabilirsiniz.

Bu teknik ile kazandığınız avantajlar,

- Render derdi yok,
- Flash ve Word hemen hemen her tasarımcının bilgisayarında yüklü programlar,
- Diğer programların fiyatları çok yüksek ve sadece bu işler için alınabilecek programlar değiller.

Dezavantajlarımız,
- Çok kaliteli değil, kalite tasarımcının yeteneğine bağlı olarak ciddi anlamda değişebiliyor.
- İşin hammallığı sıkıcı olabilir, ama sonda elde edilecek şey bu sıkıntıyı unutturabilecek nitelikte.


kaynak msxlabs.org ..
Önceki mesajları göster:   


Powered by phpBB © 2001, 2005 phpBB Group
Türkçe Çeviri: phpBB Türkiye & Erdem Çorapçıoğlu