Ümit YORMAZ Kişisel Blog

19 Mart 2012 Pazartesi

Flash CS5 AS3 ile Banner Yapımı

Bugün flash cs5 ile banner yapacağız.
Tabi Burada Action Script 3 (AS3) kullanarak işlemlerimizi biraz daha kolaylaştıracağız.
flash cs5 as3.0 ı açalım ve başlayalım.

Öncelikle sahne ayarlarını 300 e 300 yapalım. Bu benim yaptığım siz de çalışmalarınıza göre ayarlayabilirsiniz.
Şimdi ilk önce movieclip nesnelerimizi oluşturalım. İsimlerini ben "1,2,3,4,5" şeklinde verdim ve içlerine farklı renkte kareler çizdim Siz isterseniz resim veya herhangi bir şekil, yazı yapabilirsiniz. Bunları 300 e 300 yaparsanız uyumlu olur.
Bunları yaptıktan sonra bunları 1 movieclipte toplamayı düşünüyorum Siz isterseniz sahnede de yapabilirsiniz.
Şuanlık Kütüphane Görüntümüz:

Şimdi "anim" movieclip'in içine girip işlemlerimizi yapalım.
3 katman ekliyoruz.Bu katmanlara çift tıklayarak En üsttekine "action", Ortadakine "arkaplan", alttakine ise "nesneler" isimlerini verelim. Bunların normalde flash'ın çalışmasında hiç bir etkisi yoktur Sadece kullanıcının neyin nerde olduğunu bildirir ve yanlış değişikliklerden korur.
Katmanların her birine 10 tane Anahtar Kare (key frame) ekleyelim.
Zaman Çizelgemizde (timeLine) son görüntü:

Şimdi nesnelerimizi Kütüphaneden yerleştirelim.
"action" ve "arkaplan" katmanlarını kilitleyelim.

İlk frame'e(kareye) (Birinci (1.) Kare):
"nesneler" katmanının ilk frame'ine "5" isimli nesnemizi koyalım ve bunun x ve y koordinat değerlerine 0 yazalım Nesnemizin "instance name"ine ("örnek adı"na) "besinci" yazalım . Bu işlemi "Align" panelinden de yapabilirsiniz. Bu ilk frameye "1" isimli nesnemizi de koyup x değerine 0 y değerine -300 yazalım (x=0,y=-300) Nesnemizin "instance name"ine ("örnek adı"na) "birinci" yazalım.

İkinci (2.) frame(kare)'e geçelim.
İkinci kareye sadece "1" isimli nesnemizi koyalım ve x'e 0 y'ye 0 (x=0,y=0) değerlerini verelim.

Üçüncü (3.) Kare (frame):
"1" isimli nesnemizi yine x=0, y=0 olacak şekilde koyuyoruz Nesnemizin "instance name"ine ("örnek adı"na) "besinci" yazalım. Bunun yanında "2" nolu nesnemizi koyuyoruz ve x=-300 y=0 konumlandırmasını yapıyoruz Nesnemizin "instance name"ine ("örnek adı"na) "ikinci" yazalım.

Dördüncü (4.) Kare:
Bu karede sadece "2" nolu nesnemiz olacaktır x=0 y=0 değerlerini verelim Nesnemizin "instance name"ine ("örnek adı"na) "besinci" yazalım.

Beşinci (5.) Kare:
"2" nolu nesnemiz yine x=0 y=0 konumunda olacaktır Nesnemizin "instance name"ine ("örnek adı"na) "ikinci" yazalım. "3" nolu nesnemizide ekleyip x=0, y=300 konumlandırmasını yapalım Nesnemizin "instance name"ine ("örnek adı"na) "ucuncu" yazalım .

Altıncı (6.) Kare:
Burada sadece "3" nolu nesne olacaktır ve x=0 y=0 konumunda olacaktır.

Yedinci (7.) Kare:
"3" numaralı karemiz yine ortada (x=0 y=0) olacaktır Nesnemizin "instance name"ine ("örnek adı"na) "ucuncu" yazalım. "4" nolu nesnemizi de ekleyip x=300 y=0 konumlandırmasını yapıyoruz Nesnemizin "instance name"ine ("örnek adı"na) "dorduncu" yazalım.

Sekizinci (8.) Kare:
"4" isimli nesnemizin x=0 y=0 olarak yerleştiriyoruz.

Dokuzuncu (9.) Kare:
"4" isimli nesnemiz yine ortada x=0, y=0 ve Nesnemizin "instance name"ine ("örnek adı"na) "dorduncu" yazalım. Bunun yanına "5" isimli nesnemizi ekliyoruz x=-300 y=0 olarak konumlandırıyoruz Nesnemizin "instance name"ine ("örnek adı"na) "besinci" yazalım.

Onuncu (10.) Kare:
Burada sadece "5" nolu nesnemiz olacaktır ve x=0 y=0 olarak konumlandırıyoruz.

Bu Katmandaki işlemlerimiz bitmiştir.
Bu katmanı kilitleyelim ve gizliyoruz "arkaplan" katmanını açıyoruz ve orada ufak bir işlem yapıyoruz.
"arkaplan" katmanına 300'e 300 boyutunda bi kare çiziyoruz Rengini %10 saydam yapabilirsiniz. Konumlandırmasını x=0 y=0 şeklinde yapıyoruz. Burayı maske olarak kullanacağız. İsterseniz yapmayabilirsiniz.
Şimdi ActionScript kodlarını yazmaya sıra geldi.
Şuanlık görüntümüz:

Şimdi "action" katmanına geçelim.

Kodları Kare Kare yazacağım Kopyala yapıştır yapalım.

Birinci (1.) Kare:

//ilk anda hareket etmemesi için stop(); kullanıldı.
stop();
//sayac istenilen yere gelip gelmediğini kontrol ettirmek için veya
//nesneyi 10 kez hareket ettirdikten sonra diğer kareye atlamak için kullanıldı
var sayac:Number = 0;
//fonksiyon açıyoruz. Bunu döngü olarak ta düşünebilirsiniz.
//setInterval komutunu sağladığında bu fonksiyon çağrılacaktır.
function fonk1():void
{
//beşinci ("5") nesnemizin "y" değerine 30 ekliyoruz.
besinci.y += 30;
//birinci ("5") nesnemizin "y" değerine 30 ekliyoruz.
birinci.y += 30;
//Sayacı 1 arttırıyoruz. Bu döngünün veya nesnenin bir kereliğine hareket ettiğini gösteriyor.
sayac++;
//sayac ı kontrol ediyoruz. nesne 10 kere hareket etmişse 2. frame e geçiyoruz.
if (sayac == 10)
//koşul sağlanınca buraya girecektir. yani nesne 10 kez hareket ettikten sonra
{

//Intervalin başka işlem yapmaması ve/veya ram'de durmaması(yormaması) için siliyoruz. Bu işlem önemlidir.
clearInterval(interval1);
//2. kareye git ve dur.
gotoAndStop(2);
}
}
//interval tanımı.
//Burada "100" mili saniye cinsindendir. yani 1 saniye geciktirme yapmak istiyorsanız 1000 değerini yazmanız gerekiyor.
//100 mili saniye bekledikten sonra "fonk1" adındaki fonksiyona gider.
var interval1:uint = setInterval(fonk1,100);


İkinci (2.) Kare:

//Burada fonksiyon oluşturuluyor.
//Interval 3 saniye bekledikten sonra fonksiyonun içindeki işlemler yapılır.
function fonk2():void
{
//Interval kaldırılıyor.
//Bu işlem önemlidir.
clearInterval(interval2);
//3. kareye git ve dur.
gotoAndStop(3);
}
//İnterval tanımı yapılıyor.
var interval2:uint = setInterval(fonk2,3000);


Üçüncü (3.) kare:

var sayac2:Number = 0;
function fonk3():void
{
birinci.x += 30;
ikinci.x += 30;
sayac2++;
if (sayac2 == 10)
{
clearInterval(interval3);
gotoAndStop(4);
}
}
var interval3:uint = setInterval(fonk3,100);


Dördüncü (4.) kare:

function fonk4():void
{
clearInterval(interval4);
gotoAndStop(5);
}
var interval4:uint = setInterval(fonk4,3000);


Beşinci (5.) kare:

var sayac3:Number = 0;
function fonk5():void
{
ikinci.y -= 30;
ucuncu.y -= 30;
sayac3++;
if (sayac3 == 10)
{
clearInterval(interval5);
gotoAndStop(6);
}
}
var interval5:uint = setInterval(fonk5,100);


Altıncı (6.) kare:

function fonk6():void
{
clearInterval(interval6);
gotoAndStop(7);
}
var interval6:uint = setInterval(fonk6,3000);


Yedinci (7.) kare:

var sayac4:Number = 0;
function fonk7():void
{
ucuncu.x -= 30;
dorduncu.x -= 30;
sayac4++;
if (sayac4 == 10)
{
clearInterval(interval7);
gotoAndStop(8);
}
}
var interval7:uint = setInterval(fonk7,100);


Sekizinci (8.) kare:

function fonk8():void
{
clearInterval(interval8);
gotoAndStop(9);
}
var interval8:uint = setInterval(fonk8,3000);


Dokuzuncu (9.) kare:

var sayac5:Number = 0;
function fonk9():void
{
dorduncu.x += 30;
besinci.x += 30;
sayac5++;
if (sayac5 == 10)
{
clearInterval(interval9);
gotoAndStop(10);
}
}
var interval9:uint = setInterval(fonk9,100);


Onuncu (10.) kare:

function fonk10():void
{
clearInterval(interval10);
gotoAndStop(1);
}
var interval10:uint = setInterval(fonk10,3000);


Kodlarımızı da tamamladık.

Son işLemimiz ise "arkaplan" katmanına sağ tıklayıp mask (maske) seçeneğine tıklıyoruz.
Şimdi "anim" movieclip'i sahneye x=0 y=0 konumuna yerLeştirelim.
Vee Bitti.

Çalıştırıp Deneyelim.

Sorularınızı yorum olarak yazabilirsiniz.

Dosya Link'i:
İndir

Saygılar...

2 Mart 2012 Cuma

c sharp'ta kütüphane otomasyonu

Şuan BaşLangıç aşamasından başLayarak Yaptığım kadarıyLa buraya sunmaya çaLışacağım.

Bu otomasyonda 4 seçenek oLacaktır (Tabi siz arttırabiLirsiniz)
1. Kitap Kaydı Yap
2. Kitap Sil
3. Kitap Ara
4. Öğrenci İşLemLeri

Her bir seçenek için ayrı ayrı Form oLuşturarak yapmaya çaLışacağım.
Bunun için:
Resimdeki gibi Add yaparak Windows Form a tıklayınca önümüze bi pencere geLecektir.

Buradan Windows Form seçiLip Add yaparak yeni Form oLuşturuLacaktır.
Bizim programımızda 4 seçenek var ve bu 4 seçenek iLk başta geLen pencerede gösteriLecektir. Yani Her bir seçenek için ayrı birer form daha oLuşturmamız gerekiyor ve topLamda 5 tane Form oLması gerekiyor. Yukardaki işLemLeri tekrarLayarak bu FormLarı oLuşturaLım.
Resimdeki görüntüyü eLde edebiLdiyseniz Bu işLem tamamdır.

Şimdi Form1 de çaLışmamıza devam edeLim.
Sayfamıza resimdeki tooLbox penceresinden 4 tane buton çekip bırakaLım ve SeçenekLerimizi butona yazaLım. Bu işLemi de butona tıkLayarak sağdaki Properties aLtından Text yazısını değiştirerek yapaLım.

Bu işLemLeri yaptık ve iLk açıLan penceremizi oLuşturduk.
Şimdi diğer formLarı yapaLım. Diğer formLarı Resim oLarak veriyorum Siz Kendi isteğinize göre yapın.

////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////


TextBox'Ların etrafındaki kırmızı yazıLar TextBox isimLerini (name) Göstermektedir.
İsimLeri bunLara göre yaparsanız KodLarı verdiğimde sıkıntı yaşamazsınız.

Şimdi KodLamaLara geLeLeLim. iLk önce Ana penceremizi (Form1) açaLım ve pencerenin boş bir yerine çift tıkLayarak Form1 in Load (yükLenirken) ÇaLıştırıLacak iLk kodLarı yazaLım ama öncesinde Bu programda DosyaLama işLemi yapacağımız için c sharp'ın dosyaLama özeLLiğini aktifLeştirmemiz gerekiyor.
Bunun için:

Resimdeki Gibi Kod aLanının üst tarafındaki yere using System.IO; Yazıyoruz ve dosyaLama özeLLikLeri açılmış oLuyor.
Şimdi Form1_Load kısmına geLip iLk önce şu kodLarı yazıyoruz.

StreamWriter sw;
sw = File.AppendText("kayitlar.txt");
sw.Close();

Kodumuzda bir .txt (not defteri) oLuşturuyoruz. Burda File.AppendText yerine File.CreateText te oLabiLirdi ancak CreateText Her seferinde yeni bir txt dosyası oLuşturur. Yani önceden varsada o dosya onu siLip (içinde biLgiLer varsa onLarıda siLer) yeni boş bir txt dosyası oLuşturur. Ancak AppendText O isimdeki dosya yoksa oLuşturur Varsa zati var deyip dosyanızın sadece adresini tanımLamış oLursunuz.
Form1_Load kısmındaki işLemimiz şimdiLik bu kadar. Tekrar Form1'in görseLine geçip 'Kitap Kaydı Yap' Butonuna çift tıkLayarak Bu butonun Click oLayLarını düzenLeyeLim.
Burada isteniLen şey Kitap Kayıt Sayfasına geçmektir. TıkLanınca Form2 açıLacak ancak diğer Form1 sayfasının görünmemesi Lazım. Bunun için internetten araştırdığım bir Kod var.

Form1.ActiveForm.Hide();
Form2 frm2 = new Form2();
frm2.ShowDialog();
Form1 frm1 = new Form1();
frm1.Visible = true;

Bu kodLarı Kayit Yap Butonunun click özeLLiğine yapıştırın ve diğer butonLara da tek tek tıkLayıp SırasıyLa yapıştırın ve 'Form2 frm2 = new Form2();' deki 'Form2'Lerin yerine sırasıyLa formLarın isimLerini (Form3, Form4 gibi) yazınız.
Bu işLemLeri yaptıktan sonra çaLıştırıp deneyiniz. Eğer ButonLarın hepsine tek tek TıkLayınca Ana pencere kapanıp yeni pencere açıLıyor ve yeni pencereyi kapadığınızda ana pencere açıLıyorsa işLemimiz tamamdır. Şimdi Diğer Form'Lara geçebiLiriz.

Şimdi Kitap Kaydı işLemini yapacağımız Form'a.
Burada Form_Load kod böLümünde bir işLeme gerek yoktur. İşLemimizi sadece butona tıkLayınca yapacağımız için 'Kayıt Yap' butonundan bütün işLemLerimizi yapaLım. Kayıt Yap butonuna çift tıkLayıp Click özeLLiğine (event) geçeLim.
Burada kodLarımızı direk yapıştıraLım.


StreamWriter sw;
sw = File.AppendText("kayitlar.txt");
if (KayitKitapAdiTextBox.Text != null && KayitYayinAdiTextBox.Text != null && KayitYazarAdiTextBox != null)
{
sw.WriteLine(KayitKitapAdiTextBox.Text + "," + KayitYazarAdiTextBox.Text + "," + KayitYayinAdiTextBox.Text);
MessageBox.Show("Kayıt BaşarıyLa YapıLdı");
}
else
{ MessageBox.Show("KutuLar boş bırakıLamaz"); }
sw.Close();

YapıLan iLk işLem 'yazma' oLayını ve kayıtçının adresini tanımLamak oLdu.
Daha sonrasında KutuLarın boş bırakıLıp bırakıLmadığını 'if' komutuyLa kontroL ettirdik.
Boş değiLse (if): YazıLan kitabı beLirLi parametreyLe (araLarına boşLuk oLmadan virgüL koyarak) not defterine yazdırdık. Bu parametre sizin isteğinize göre değiştirebiLirsiniz. Daha sonrasında da ekrana mesaj veriLdi.

Boş ise (else): Ekrana mesaj ver

Kaydın yapıLıp yapıLmadığını kontroL edebiLirsiniz. Programı kaydettiğiniz yerde /bin/debug/ kLasörü içinde kayitLar.txt dosyası oLuşturuLmuştur Bu dosyayı açarak girdiğiniz biLgiLerin orada oLduğunu göreceksiniz.

Şimdi Kitap SiL Form'una geLerek buradaki işLemLeri yapaLım.
Burada da sadece butona tıkLayınca işLem yapacağı için Butona çift tıkLayıp click özeLLiğine geçeLim ve kodLarımızı yazaLım.


StreamReader sr;
sr = File.OpenText("kayitlar.txt");

StreamWriter sw;
sw = File.AppendText("kayitlar2.txt");

string okundu;
okundu = sr.ReadLine();
string istenen = SilKitapAdiTextBox.Text + "," + SilYazarAdiTextBox.Text + "," + SilYayinAdiTextBox.Text;


if (SilKitapAdiTextBox.Text != null && SilYazarAdiTextBox.Text != null && SilYayinAdiTextBox.Text != null)
{
while(okundu!=null)
{

if (istenen!=okundu)
{
sw.WriteLine(okundu);
}
okundu = sr.ReadLine();
}
}
else
{
MessageBox.Show("KutuLar Boş BırakıLamaz");
}
sw.Close();
sr.Close();
File.Delete("kayitlar.txt");
File.Move("kayitlar2.txt","kayitlar.txt");
MessageBox.Show("BaşarıyLa SiLindi.");


Mantığımız siLinecek veriyi buLmak ve yeni bir dosya oLuşturup SiLinecek veri hariç Diğer veriLeri bu dosyaya kopyaLamak. Daha sonra önceki dosyayı siLip yeni dosyanın ismine önceki doyanın ismini vermek.

/////////
Son oLarak Kitap Ara Formumuzu açıyoruz ve buradada sadece cLick özeLLiği kuLLanıLacaktır.
Mantığımız Kitabın oLup oLmadığını kontroL ettirip Varsa 'VAR' Yoksa 'YOK' mesajını vermesini sağLamak.


char bayrak='0';
string istenen;
istenen = AraKitapAdiTextBox.Text + "," + AraYazarAdiTextBox.Text + "," + AraYayinAdiTextBox.Text;
string okundu="53";

while (okundu != null)
{
okundu = sr.ReadLine();
if (istenen == okundu)
{
bayrak = '1';
okundu = null;
}
}
if (bayrak == '1')
MessageBox.Show("Kütüphanemizde Bu Kitap Vardır. Okumanız Dileğiyle");
else
MessageBox.Show("Malesef Aradığınız Kitap BuLunmamaktadır.");

}
else
{
MessageBox.Show("Kutular Boş BırakıLamaz");
}
sr.Close();


Programımız ŞimdiLik bu kadardır.
Diğer 'Öğrenci İşLemLeri' Butonuna veya En son kaLan Form'a istediğiniz bir şey ekLeyebiLirsiniz(YetkiLi girişi, Bütün KitapLarı ListeLe vs.)
Bu konu hakkında şimdiLik bu kadar. EkLemeLer oLacaktır.
BaşarıLar...