PayPal'a üye olun ve kredi kartı ödemelerini kabul etmeye anında başlayın.
 

Director MX 2004 ile Not Defteri Uygulaması

Programlama Makaleleri Director MX 2004 ile Not Defteri Uygulaması Programlama hakkında bilgi paylaş; Director MX 2004 ile Not Defteri Uygulaması Kullanıcılarına birşeyler üretme şansı verdiğiniz her uygulamanızda ü...
Cevapla
 
Seçenekler
  #1  
Arama 19-11-2007, 08:21
Professionel - ait Kullanıcı Resmi (Avatar)

Yaş: 20
Üyelik Tarihi: 19/11/07
Mesajlar: 468
 
     WS-Ticareti: (0)
Teşekkürleri: 0
10 Msg. 20 Tşkr.
Rep Gücü: 41 Professionel çok çok hoş rep gücü varProfessionel çok çok hoş rep gücü varProfessionel çok çok hoş rep gücü varProfessionel çok çok hoş rep gücü var

Director MX 2004 ile Not Defteri Uygulaması

Director MX 2004 ile Not Defteri Uygulaması


Kullanıcılarına birşeyler üretme şansı verdiğiniz her uygulamanızda üretilen şeyin kaydedilebilmesi adeta bir esas olmuştur. Zira kaydedilemeyen uğraşlar kullanıcıyı uygulamadan soğutacaktır. En basitinden bir Not tutma aracı yaptığımızda kullanıcıya "Notunu burada yaz, sonra yazdığını not defterine kopyala, orada kaydet" gibi bir çözüm üretmekden bir programcı olarak utanç duymalıyız.

Tamam, kullanıcımızın uğraşını bir dosyaya kaydettik. Ama bir de şu kaydettiğimiz dosyayı çift tıklayarak uygulamamızda açtırabilsek hiç de fena olmazdı. Gelin kullanıcılarımızı bu dertten de kurtaracak bir çözüm üretelim...

Ne Lazım?

Bu çalışmada Director MX 2004 ve registry düzenlemek için BuddyAPI Xtra kullanacağız. Bu Xtra 2 fonksiyon kullanımına kadar ücretsiz. adresinden temin edebilirsiniz.

Önce Birkaç Teorik Bilgi

Windows'ta exe ve com uzantılı dosyalar hariç tüm dosyalar bir exe veya com uzantılı dosyayla ilişkilendirilerek çalışırlar. Örneğin doc uzantılı Word dosyalarımız, Word.exe uygulaması sayesinde çalışır. Biz günlüğüm.doc adlı bir Word dokümanımıza çift tıkladığımızda sistem word.exe uygulamasına çift tıkladığımız dokümanın tam yolunu göndererek çalıştırır. Yani çalıştırılacak dosya şöyle yazılmış olur: Word.exe d:Belgelerimgunlüğüm.doc Çalıştırılacak uygulama dosyasının adından sonraki bölüm (burada d:Belgelerimgunlüğüm.doc) komut satırı (commandline) olarak geçer. Word uygulaması çalıştığında komut satırını kontrol eder ve bir şey gönderilmişse onu çözümleyip dosyayı açar. Eğer biz de Director ile yaptığımız projektöre gönderilen bir komut satırı verisini okursak biz de bu yöntemi kullanabiliriz.

Ama bir dakika! Daha önce aklımıza takılacak bir sorun var; Windows doc uzantılı bir dosyaya çift tıklandığında Word uygulamasının açılacağını nereden biliyor? Bu bilgiler Windows'ta registry editor'de tutulur. Registry Editor Windows'un adeta kalbi gibidir. Registry konusuna çok detaylı girmeyeceğim, zira hem konumuz değil hem de sadece bu konudan onlarca ders çıkar. İşimizle ilgili bölümüne bakacak olursak, bütün dosya ilişkilendirmeleri Registry'de HKEY_CLASSES_ROOT bölümünde tutulur. İsterseniz Başlat -> Çalıştır 'a basıp çıkan pencereye regedit yazarak Registry Editor'ü inceleyebilir, HKEY_CLASSES_ROOT'daki ilişkilendirmeye göz gezdirebilirsiniz. Ama hiçbirşeyi değiştirmemeniz konusunda sizi uyarıyorum.

Az Laf, Çok İş. İcraata Başlayalım

Amacımız basit bir not tutma aracı yapmak olsun. Boş bir Director uygulaması açalım. Ve ilk sprite'ımıza adı "MetinKutusu" olan bir field member'ı koyalım. Kutunun altına yazılarımızı kaydetmek için bir Kaydet butonu, son karenin FrameScript'ine de filmimizi orada bekletecek olan aşağıdaki kodu yazalım:

on exitFrame me
go the frame
end




Öncelikle Kaydet düğmesinin kodunu oluşturalım. FileIO Xtra'sı (Director'un mevcut xtralarındandır) ile MetinKutusu'ndaki metni bir dosyaya kaydedecek kodumuz şöyle olacaktır:


on mouseUp me
str = member("MetinKutusu").text
fio = new(xtra "fileIO")
fio.setFilterMask("Bizim Not Defteri,*.bnd")
fn = fio.displaySave("Metni Kaydet...","not.bnd")

if fn<>"" then
fio.createFile(fn)
fio.openFile(fn, 2)
fio.writeString(str)
fio.closeFile()
fio = 0
end if
end

Kodumuzu satır satır şu şekilde okuyabiliriz:

-Bana tıklandığında... (Aslında mouse'un sol düğmesi benim üzerimdeyken basılıp bırakıldığında...)
-MetinKutusu adlı elemanımızın içindeki metni str adlı değişkenimize ata
-fio değişkenimizi bir FileIO nesnesi yap.
-Bu satırda Kaydet penceresindeki varsayılan dosya formatını belirliyoruz. Ben bnd diye bir dosya uzantısı uydurdum. İstediğiniz uzantıyı Dosya Tanımı, *.uzantı şeklinde yazabilirsiniz.
-Kaydet penceresini göster. Sonucunu fn değişkenine ata. Bu pencereden ya kaydedilecek dosyanın yeri ve adı ya da boş bir metin gelir. Boş gelmesi İptale basıldığı manasına gelir.
-Eğer İptal'e basılmamışsa...
-Pencerede verilen konum ve isimdeki dosyayı oluştur.
-Aynı dosyayı aç.
-Dosya içine str değişkenimizdeki metni yaz.
-fio nesnesini kapat.
-fio değişkenini nesne olmaktan çıkar.

Filmimizi çalıştırıp istediğimiz metni bnd uzantılı dosyalar olarak kaydedebiliriz. İlk aşama tamam, ancak Windows bizim bnd uzantımızı tanımadı doğal olarak. Dosyamız da aşağıdaki gibi görünüyor:



Şimdi bnd uzantısını projemizle ilişkilendirecek kodu yazalım. Bir Movie Scipt oluşturup içine aşağıdaki kodu yazalım:

on prepareMovie()
EditWindowsRegistry()
end prepareMovie
on EditWindowsRegistry()
UygulamaYolu = the applicationPath & the applicationName & " %1"
Yaz = baWriteRegString(".bnd", "", "BizimNotDefteri", "HKEY_CLASSES_ROOT")
Yaz = baWriteRegString("BizimNotDefterishellopencommand" , "",
UygulamaYolu, "HKEY_CLASSES_ROOT")
end EditWindowsRegistry

Burada prepareMovie olayı yani filmin çalışmaya hazırlandığı an ve EditWindowsRegistry fonksiyonu var. Film çalışmaya hazırlanırken ilişkilendirmeyi yapmak için EditWindowsRegistry fonksiyonunu çalıştırıyoruz. Bu fonksiyonun kodunu şu şekilde okuyabiliriz:

-UygulamaYolu değişkenine uygulamamızın bulunduğu klasör - Uygulamamızın adı ve " %1" metnini atıyoruz. Burada %1 Windows'un buraya çift tıklanan dosyanın yolu ve adını yazması için verilen bir komut.
-BuddyApi Xtra'sının WriteReString fonksiyonu sayesinde, Registry'de "HKEY_CLASSES_ROOT" bölümüne bnd uzantımız için BizimNotDefteri adlı bir dosya formatı oluşturuyoruz.
-Yine WriteReString fonksiyonu sayesinde, BizimNotDefteri formatımızın aç komutuna UygulamaYolu değişkenimizdeki içeriği veriyoruz.

Uygulamamızı Projektör yapıp çalıştırırsanız, bnd uzantılı dosyalarımızın artık projektörümüzün ikonuyla göründüğünü ve çift tıklandığında uygulamamızın çalıştığını görürsünüz. Tabi çift tıklandığında komut satırındaki bilgiyi okuyan bir kod yazmadığımız için sadece uygulama çalışıyor şimdilik. Hadi sizi sıkmayayım da şu kodu da yazıp meseleyi mutlu sona erdirelim. Bu kodu da bir Movie Script olarak yazacağız. Yeni bir Movie Script oluşturarak içine aşağıdaki kodu yazınız:

on startMovie me
if length(the commandLine) > 0 then
fio = new(xtra "fileio")
openFile(fio, the commandLine, 1)
oku = readFile(fio)
put oku into field "MetinKutusu"
closeFile(fio)
fio = 0
end if
end

Kodumuzu satır satır okuyalım:

-Filmimiz başladığında...
-Eğer komut satırının uzunluğu 0 karakterden fazlaysa. Yani komut satırında bir değer varsa, yani bir dosya çift tıklanarak çalışmışsak... Komut satırındaki metni gördüğünüz gibi the commandLine ile alıyoruz.
-Dosyayı aç.
-Dosyayı oku ve içeriğini oku değişkenine ata.
-oku değişkeninin içeriğini MetinKutusu field elemanının içine yaz.
-Dosya bağlantısını kapat.
-fio değişkenini nesne olmaktan çıkar.

Bitti Mi, Bitmedi

Sanırım mantığı çözdük. Aynı mantıkla uygulamalarımız tarafından oluşturulan dosyalarımıza güzel özellikler ekleyebiliriz. Şimdi dersin en önemli kısmındayız; "Ben bu bilgiyi işlerimde nasıl kullanırım?" sorusunun cevabını bulma aşaması...
Alıntı ile Cevapla
Cevapla


Seçenekler


Benzer Konular
Konu Konu Açanlar Forum Cevaplar Güncel Mesajlar
Dreamweaver MX 2004 Celebrian Webmaster Programları 2 18-10-2008 09:56
NBA Live 2004 B737 Oyun 0 05-03-2008 03:45
Athens 2004 B737 Oyun 0 02-03-2008 09:48
Macromedia Flash MX 2004 7.02 Celebrian Webmaster Programları 0 22-11-2007 03:26
Director ve Flash Entegrasyonu Professionel Programlama Makaleleri 0 19-11-2007 08:21

Siteye link vermek için alttaki kodu sitenize ekleyin
Ya da kodu Ctrl+C ile kopyalayın
Örnek görünüm: Webmaster Sitesi

Kadınlar blogu ~ Apple iPhone, iPod Touch ( iTouch ) Forum iPhone