ActionScript'in Temelleri (Ders 9)

Flash - ActionScript'in Temelleri (Ders 9) ...

Cevapla
ActionScript'in Temelleri (Ders 9)
Hades isimli Üye şimdilik offline konumundadır

Hades

Hiç Biri / Bursa

Standart

ActionScript'in Temelleri (Ders 9)

Alt 14-10-2007 #1
Sponsorlu Bağlantılar

Macromedia Flash 8 Basic kullanıyorsunuz diye Flash'ın en güçlü özelliklerinden birine erişemiyecek değilsiniz. ''işlerin yürümesini sağlamak'' için kullanacağınız bu özelliğin adı ActionScript ve o olmadan Flash uygulamalarınıza gerçek birer uygulama diyemezsiniz. Uygulamalarınızı bir sergideki resimlere benzetebilirsiniz. Onlara bakmak çok zevklidir, peki ama bu uygulamalar ne yapar? Eğer ActionScript kodları kullanıyorlarsa; satış vergisini hesaplayabilir, metin alanlarındaki bilgileri okuaybilir ya da Flash Player aracılğıyla başka bir konumda yer alan MP3 dosyalarını akıtabilir ve sadece güzel görünmenin ötesinde daha pek çok güzel şey yapılabilir.

ActionScript'in Temelleri (Ders 9)

Eğer ActionScript terimi korkunç görünüyorsa lütfen korkmamaya çalışın. ActionScript, aslında belirli şeyleri kontrol etmek için kullanılan bir araçtır. ActionScript’i örneğin movie clip’lere ne yapmaları gerektiğini söylemek, komşunun çocuğu LoadVars’ı çağırıp sizin için yerel metin dosyasından bir şeyler almasını söylemek için kullanırsınız. ActionScript işleri organize etmek için kullanılır. Kısacası, ActionScript kullanmanın, eşinizi markete göndermeden önce eline bir alışveriş listesi tutuşturmaktan çok farkı yoktur (biz erkekleri kast ettiğini biliyorum, çünkü bizleri bir alışveriş listesi olmadan markete göndermek pek akıl kârı değildir). Burada da belirli öğelere ne yapmaları, bunları hangi sırayla ve nasıl yapmaları gerektiğini söylersiniz. Buyurmayı seven bir yapıya sahipseniz, ActionScript kullanmak sizin için çok kolay olacaktır.

Bu derse harici verileri yüklemek için ActionScript kullanacaksınız. ActionScript’i birtakım verileri Flash’ın dışında bir yere göndermek için de kullanacaksınız. Dahası, en sonunda menülerinize animasyon uygulayabileceksiniz. Bu derste Script Assist’i kullanmayacaksınız, bu yüzden parmaklarınızı ısıtmaya başlayın, zira kendi ActionScript kodlarınızı kendiniz yazmak zorundasınız. Bununla birlikte, çoğu görevin diğerlerine benzediğini görecek ve çok kısa bir sürede bu işe de ısınacaksınız.


Bu derste şunları öğreneceksiniz:

•ActionScript 2.0’ı öğreneceksiniz.
•Nesne, metot ve özellik kavramlarını öğreneceksiniz.
•Değişkenlerde kesin tip belirleme tekniğinin nasıl kullanıldığını öğreneceksiniz.
•ActionScript’le çalışırken işleri hızlandırmak için kod ipuçları özelliğini kullanmayı
öğreneceksiniz.
•Fonksiyon ve koşullu deyim kavramlarını öğreneceksiniz.
•Faaliyet alanı ve değişkenlerin kullanımını göreceksiniz.
•_root, _parent ve level anahtar sözcüklerinin nasıl kullanıldığını öğrenceksiniz.
•Veri göndermek ve almak için LoadVars nesnesiyle çalışacaksınız.
•Kodlarınızda olayları, olay işleyicileri ve izleyicileri kullanacaksınız.
•Bir metne CSS biçimlendirmesi ekleyecek ve bu metni bir belgeye yükleyeceksiniz.
•Catalog (Katalog), Reviews (İnceleme), News (Haber) ve Home (Giriş) sayfalarını oluşturacaksınız.
•Tech Bookstore menüsüne animasyon uygulayacaksınız.
•Tech Bookstore menüsünün çalışmasını sağlayacaksınız.
Bu mesajdan alıntı yap
Sponsor Links

Grafikerler.net Reklamları

Hades isimli Üye şimdilik offline konumundadır

Hades

Hiç Biri / Bursa

Standart

ActionScript 2.0

Alt 14-10-2007 #2
                             Sponsorlu Bağlantılar
ActionScript 2.0, nesne yönelimli (object-oriented) bir script dilidir. Nesne yönelimli diller, belirli işlev tiplerini alıp sınıf (class) adı verilen araçlar (sınıflar, bu işlevselliği kullanması gereken öğeler için birer şablon gibi kullanılırlar) halinde organize ederek script yazanların ve programcıların hayatını kolaylaştırmak için tasarlanmıştır. Bir sınıf kullanmak istiyorsanız bu sınıfın bir örneğini (instance) oluşturursunuz; bu örnek, nesne (object) olarak adlandırılır. Nesne, kalıtım yoluyla sınıftaki bütün talimatları alır, yani ne olduğunu ve geçerli durumda neler yapabileceğini az çok bilir. Nesnelerin metotları (method), yani nesnelerin yaptığı şeyler vardır, bunun dışında kendilerini tanımlayan özellikleri (property) ve yayınlamak ya da cevap vermek için kullandıkları olayları (event) vardır. Bu konuyla ilgili ayrıntıları daha sonra göreceğiz. Şu anda bunun ActionScript 2.0’ın çalışma şeklinin bir parçası olduğunu bilmemiz gerekiyor.

ActionScript 2.0, BÜYÜK/küçük harflere duyarlıdır, yani BÜYÜK ve küçük harfleri kullanarak değişkenler (variable), fonksiyonlar (function) ve örnek isimleri (instance name) oluşturduğunuzda bu öğelere ait tüm referansların tanınabilmesi için referanslarda BÜYÜK/küçük harf yazımına kesin olarak uyulması gerekir. Ayrıca ActionScript tarafından kullanılan metotlar, özellikler ve olayların da kesin olarak bu yazım şekline uyması gerekir. getURL() metodu getUrl() ile aynı şey değildir. Eğer R ve L harflerini büyük yazmazsanız, Flash neden bahsettiğinizi ve ne yapmaya çalıştığınızı anlamayacaktır. BÜYÜK/küçük harf yazımına duyarlıdır.

ActionScript 2.0’ın belirtmek istediğimiz son özelliği, genişletilebilir (extensible) olmasıdır. Yani ona, ilk geldiğinde yapamadığı şeyleri yaptırabilirsiniz. Flash 8 Basic sadece belirli sınıflar ve becerilerle gelir. Örneğin çalışanlarla ilgili karmaşık veri yönetimi gibi gösterişli işlevlerin bu işlerden anlayan zeki geliştiriciler tarafından yaratılması gerekir. Geliştirici, Flash’ta verileri istenen şekilde yönetebilmek amacıyla kendi sınıflarını, nesnelerini, metotlarını ve olaylarını yaratabilir. Bu, ActionScript 2.0’a her şeyi yaptırabileceğiniz anlamına gelmez, ama pek çok şey yaptırmak mümkündür. Ayrıca geliştiriciler kendi ActionScript kodlarını Extension Manager’la kurulabilen davranışlara, bileşenlere ya da menü komutlarına dönüştürebilirler (Extension Manager’la ilgili ayrıntılı bilgi için, Ek A bölümüne bakınız).

İpucu: Sınıfların, metotların, özelliklerin ve özel nesnelerin oluşturulması bu kitabın kapsamı dışındadır, ama burada bu kavramlara yer vereceğiz. Kendi sınıflarınızı, metotlarınızı ve özelliklerinizi nasıl oluşturacağınızı öğrenmek için Macromedia Flash 8 ActionScript: Training from the Source kitabını inceleyebilirsiniz.
Bu mesajdan alıntı yap
Hades isimli Üye şimdilik offline konumundadır

Hades

Hiç Biri / Bursa

Standart

Sınıflar, Metotlar ve Özellikler

Alt 14-10-2007 #3
ActionScript 2.0 ve Flash 8 Basic sınıflar, nesneler ve nesne örneklerinin kullanıldığı işlevsel bir model üzerine kurulmuştur. Bu modelin çalışma şekliyle ilgili her şeyi bilmeniz gerekmez; ancak temelini oluşturan kavramları bilirseniz bunun faydasını görürsünüz, çünkü bunlar Flash 8 ve ActionScript 2.0’ın nasıl çalıştığıyla (ve sizin için nasıl çalıştığıyla) ilgili olarak hemen her noktaya değinmektedir. Ayrıca, bu konu hakkında ne kadar fazla bilgi sahibi olursanız, uygulamanızı yönetmeniz de o kadar kolay olur.

Öncelikle bir sınıfın (class) ne olduğunu anlamanız gerekir. Sınıf, ortak becerileri ve özellikleri tanımlayan script’lerden oluşan bir koleksiyondur. Sınıflar önemli bileşenlerdir, çünkü geliştiricileri, aynı ya da farklı uygulamalarda aynı işi yaparken ihtiyaç duydukları kod satırlarını her seferinde tekrar tekrar oluşturma mecburiyetinden kurtarırlar. Sınıfları işlevsellik için kullanılan birer şablon olarak düşünebilirsiniz ve programcılıkta, Flash’ta ve gerçek hayatta her şey aslında bir tür sınıfa aittir diyebiliriz.

Örneğin, diyelim ki köpekleri çok seviyorsunuz ve bir gün yavru bir köpek aldınız. Yavru köpekler Köpek sınıfına aittir ve Köpek sınıfı, dünya üzerinde bulunan ve çiçek tarhlarına zarar veren her köpeğin ana şablonudur. Bildiğiniz gibi sonuçta köpek, köpektir, çünkü ister küçük, ister büyük olsun, bütün köpekler benzer özelliklere sahiptir ve belirli bir şekilde davranır. Bir üretim çiftliğinden ya da evcil hayvan satıcısından bir köpek aldığınızda köpek sınıfının bir örneğini yaratmış olur (her ne kadar teknik olarak yavru köpek örneğini anne köpek doğurmuş olsa da) ve böylece bir köpek nesnesine sahip olursunuz. Yavru köpek, köpek şablonundan ya da köpek sınıfından oluşturulur ve kalıtım yoluyla köpeklerin doğumdan itibaren sahip oldukları bütün metotları ve özellikleri alır. Sizse sadece coşku dolu bir arkadaş edindiğinizi düşünürsünüz.

Bütün köpekler ortak metotlara sahiptir, örneğin havlamak(), salyaakitmak() ve kosmak() gibi. Metotlar, belirli bir nesnenin yaptığı şeylerdir. Köpekler ayrıca benzer özelliklere sahiptir: tuyCinsi, boy, ağırlık, cinsiyet, isim, vs. Özellikler, bir nesnenin fiziksel yapısını tanımlar. Bir köpeği eğittiğinizde ona yeni metotlar eklersiniz, köpeğin bakımını yaptığınızda ise onun özelliklerini değiştirirsiniz. Bununla birlikte, metotları çağırmak ve özellikleri değiştirmek, köpeğin temel yapısında bir değişiklik oluşturmaz. Dolayısıyla, ona ne yaparsanız yapın, ne öğretirseniz öğretin, köpek yine köpektir ve hep öyle kalacaktır. Anlaşıldı mı? Güzel. Çünkü köpek gibi bir nesnenin temel yapısını değiştirmeye başlamak istiyorsanız, kendi sınıflarınızı yaratmanız gerekecektir. Neyse ki Flash’ta bu kadar ileri gitmeniz gerekmeyecek, çünkü Flash’taki mevcut sınıflar sizin gerçekleştirmek istediğiniz işlemler için genelde yeterlidir.

Not: Kendi sınıflarınızı yaratmak istiyorsanız, bunların, uzantısı .as olan ve yayınladığınızda SWF dosyasına derlenen harici dosyalarda oluşturulması gerekir. Bu derslerdeki alıştırmalarda herhangi bir sınıf yaratmayacaksınız, ama ActionScript’in içinde mevcut olan “yerleşik sınıflar”ı kullanacaksınız. Bu sınıflar da Flash’ın install dizininde harici olarak .as dosyalarında depolanmaktadır. Bunları inceleyebilirsiniz ama sakın değişiklik yapmayın.

ActionScript 2.0, Math sınıfı, Button sınıfı ve Date sınıfı gibi bir dizi yerleşik sınıf içerir. Daha önce MovieClip sınıfını ve onun bazı metotlarını ve özelliklerini(stop ve gotoAndPlay metotları gibi) kullanmıştınız. MovieClip sınıfını, değiştirebileceğiniz ya da belirli bir örnek için yeniden ayarlayabileceğiniz özelliklere de (_visible, _width ve _height gibi) sahiptir. Aslında Stage’iniz de MovieClip sınıfının bir örneğidir. Yerleşik bir sınıfın nasıl kullanıldığını kısaca inceleyeceğiz. Flash’la gelen MovieClip, Button, TextField ve Component bileşen sınıflarını temel alan nesneler görsel olarak yaratılabilir (diğer bir deyişle bunların örnekleri oluşturulabilir). Ancak birçok Flash sınıfının örneğinin (LoadVars ve Sound gibi) ActionScript kullanılarak oluşturulması gerekir. ActionScript kullanarak bir sınıfın yeni bir örneğini yarattığınızda aslında yapılandırıcı fonksiyon (constructor function) adı verilen bir öğeyi çağırırsınız. Yapılandırıcı fonksiyon, bir sınıfını içinde tanımlanan ve nesneyi oluşturarak belleğe gönderen özel bir fonksiyon türüdür. Bunu bir otomobil fabrikasındaki montaj hattına benzetebiliriz. ActionScript kullanarak yeni bir nesne örneği yaratmak için aşağıdaki gibi bir satır yazabilirsiniz.

var rockinSound: Sound = new Sound();

Bu örnekte Sound sınıfının yeni bir örneğini yaratarak (ya da yapılandırarak) ona rockinSound örnek ismini veriyorsunuz. Böylece gerektiğinde ona göndermede bulunabilirsiniz. Sound örneği bellekte saklanır, dolayısıyla onu kullanmak için ismiyle çağırmanız gerekir. Çocuğunuzu yuvadan almaya gittiğinizde binaya girip “Haydi çocuklar, gidiyoruz!” diye bağırmazsınız, çünkü bir sürü çocuk peşinize takılabilir, ya da birkaç çocuk gelebilir veya hiçbir çocuk gelmeyebilir. Ele avuca sığmayan çocuğunuzu çağırmak için “Zeynep, haydi!” diye bağırmanız gerekir. Çocukları yuvadan alırken ortaya çıkan beklenmedik bir sonuç, aslında kötü bir sonuçtur ve bunu ActionScript’e uyarladığımızda benzer bir durum ActionScript’te de kötüdür. “Haydi Sesi”nin Flash için bir anlamı yoktur. Dolayısıyla Sound sınıfı örneğini adlandırmanız, sonra da bir şey yapmasını istediğinizde onu ismiyle çağırmanız gerekir. Stage’deki bir movie clip’in kütüphanede (Library) yer alan bir movie clip sembolünün örneği ya da kopyası olması gibi, rockinSound da Sound sınıfının sadece bellekte bulunan ve sizden alacağı komutları bekleyen bir örneğidir.

Sound sınıfı, yerleşik sınıfa bir örnektir. Yerleşik sınıf demek, Flash’la birlikte gelen, bilgisayarınıza yüklenen ve ActionScript diliyle yazılmış olan bir sınıf demektir. Sınıf ayrıca, sınıfını kendisini oluşturan önceden tanımlanmış metotlara ve özelliklere sahiptir. Macromedia’nın programcıları tarafından üretildikleri için endişelenmeniz gerekmez.
Bu mesajdan alıntı yap
Hades isimli Üye şimdilik offline konumundadır

Hades

Hiç Biri / Bursa

Standart

Metotlar ve Özellikler

Alt 14-10-2007 #4
Sınıflar, önceki bölümde gördüğünüz gibi, çeşitli metot ve özel iklerden oluşur demiştik. Metotlar (method), bir nesnenin sınıfıyla (Sound sınıfı gibi) ilişkili fonksiyonlardır ve nesnelerle belirli işlemler yapmak için kul anılırlar. ActionScript 2.0 dilinde, daha önce tanımını öğrendiğiniz yerleşik sınıflara ait yerleşik metotlar mevcuttur. Örneğin setRGB(), Color sınıfına ait bir yerleşik metottur. Bu metot, belirli bir SWF dosyasında yer alan bir örneğin on altı tabanlı renk değerini ayarlar.

Özellikler (property) de, ActionScript 2.0 ve Flash 8 Basic’le birlikte gelen sınıflarda yerleşik olarak bulunan öğelerdir. Özellikler, bir örneğin fiziksel yapısını tanımlamak için kullanılan değişkenler ya da veriler gibidir ve daha çok SWF dosyalarınızda kullandığınız değişkenlere benzerler. Örneğin 6. Ders’te aşağıdakine benzer bir kod parçası kullanmıştınız:

myMovieClip_mc._visible = true;

Bu kodda, _visible, bir örneğin görünürlük durumunu tanımlayan bir özelliktir(görünüyorsa true, görünmüyorsa false değerini alır). Koddan da anlayacağınız gibi görünürlük (visibility) özelliği, Stage’deki myMovieClip_mc örneği için kullanılmaktadır.

Not: Olayları ve olay işleyicilerini bu derste daha ileride “Olayları ve İşleyicileri Kullanmak” başlığı altında inceleyeceğiz.
Bu mesajdan alıntı yap
Hades isimli Üye şimdilik offline konumundadır

Hades

Hiç Biri / Bursa

Standart

Kesin Tip Belirleme Yönteminin Kullanılması

Alt 14-10-2007 #5
Kesin tip belirleme, bir değişken oluşturulurken, Flash’a bunun veri tipinin ne olduğunu, ne tür bir nesne olduğunu, yerleşik bir sınıfı mı, yoksa özel sınıfları mı temel aldığını açık bir şekilde bildirmek anlamına gelir. Yeni bir değişken oluşturduğunuzda (ya da bildirdiğinizde) ve bunu belirli bir sınıf (veri tipi) olarak tanımladığınızda, o sınıfın kuralları uygulanır. Flash, bu değişkende sadece bu türden bir verinin depolanmasını bekler. Örneğin String sınıfı için değişkende bir dizenin depolanmasını bekler. Kesin tip belirleme özelliğini, kendi hatalarınızdan korunmak için kullanırsınız. Sadece karakter içerebilen bir öğeye yanlışlıkla sayı bilgisi göndermeye çalıştığınızda uygulamayı dağıtmadan çok önce bir hata mesajıyla karşılaşırsınız. Uygulamayı çalışır hale getirmeden önce sorunları gidermeniz gerekir. Örneğin aşağıdaki kodda olduğu gibi yeni bir değişken bildirdiğinizde Flash’a sadece karakter depolayan benimDizem adında yeni bir değişken yaratmasını söylemiş olursunuz.

var benimDizem: String;

Değişkeni bildirirken, Flash’a sadece hangi veri tipinin kullanılacağını söylemeniz gerekir. Yani, bildirdiğiniz her değişken için kesin tip belirleme işlemini sadece başlangıçta yapmanız gerekir. Kesin tip belirleme yöntemiyle oluşturulan bir değişkende, aşağıda görüldüğü gibi farklı bir veri tipi depolamaya çalışırsanız, bu belgeyi yayınladığınızda bir hata ortaya çıkar.

var benimDizem: String;
benimDizem = 15;

Bir hatanın ortaya çıkmasının nedeni, bu değişkende bir sayı depolamaya çalışmanız ve bunun Flash tarafından kabul edilmemesidir, çünkü Flash’a bu değişkeni sadece karakterlerle kullanacağınızı söylemiştiniz. Bu, garajını kiraladığınız adamı, burada timsah beslemek konusunda ikna etmeye çalışmaya benzer. Yukarıdaki örnekte Flash, karakterlerden oluşan bir dize bekler, sayı değil. Bu yüzden buradaki sorunu gidermek için aşağıdaki kodu kullanabilirsiniz.

benimDizem = “15”;

15 sayısı artık 1 ve 5 karakterlerinden oluşmaktadır, dolayısıyla burada bir hata ortaya çıkmaz.
Bu mesajdan alıntı yap
Hades isimli Üye şimdilik offline konumundadır

Hades

Hiç Biri / Bursa

Standart

Actions Panelinde Kod İpuçlarını Kullanmak

Alt 14-10-2007 #6
Kod ipuçları (Code hints), Actions panelinde bulunan ve kendi ActionScript kodlarınızı yazarken kullanabileceğiniz bir özelliktir. Kod ipuçları, script yazarken zaman kazanmanızda yardımcı olur ve hatta script’lerinizin çalışmasını engelleyebilecek yazım yanlışlarını ve hataları azaltmanızı sağlar.

ActionScript'in Temelleri (Ders 9)

Kod ipuçları, bir metin alanına bir şey yazarken hangi özelliği kullanmanızın gerektiğini unuttuğunuzda çok işe yarayabilir. Bu açılır menüyü etkinleştirmenin iki yolu vardır: Değişkeni kesin tip belirleyerek tanımlamak ya da değişkene sonek ilave etmek. Dersler boyunca sonek ilave etmeyle ilgili çeşitli örnekler görmüştük.

Kod ipuçlarının ekranda belirmesini sağlamak için değişkenlerinizi, nesnelerinizi ve sembol örneklerinizi belirli şekillerde adlandırmanız ya da nesnelerinizi tip belirleyerek tanımlamanız gerekir. Bir değişken ismi oluşturduğunuzda, bu, bir oyunda puan olarak kullanılan bir sayıdan XML verilerine kadar herhangi bir şey için kullanılan bir değişken ismidir. Kesin tip belirleme ya da sonek yazma yöntemini kullandığınızda, Flash’a ilgili değişkenin ait olduğu veri tipini (sınıf)söylemiş olursunuz. Değişkenin veri tipini belirtirseniz, kod ipuçları ilgili sınıf için doğru metotları ve özellikleri gösterecektir. Tip belirleme konusunu bu derste daha önce görmüştünüz ve önceki şekilde, script’te tipi belirlemeyle tanımlanan bir nesneye göndermede bulunulduğunda kod ipuçlarının belirdiği bir örnek verilmiştir.

Bir değişkenin tipini tanımlamanın ikinci yolu sonek (suffix) kullanmaktır. Bu işlem, tip belirleme kadar esnek değildir, çünkü soneklerin ActionScript nesnelerine (sınıflar) göndermede bulunması gerekir (Sound sınıfıf ya da MoviClip sınıfıf gibi). FLA dosyanızdaki nesnelerin örnek isimlerinde sonek kullandığınızda, Flash bu örnekle ilgili doğru kod ipuçlarını görüntüler. Soneklere örnek olarak _mc (MovieClip), _btn (Button), _txt (TextField), _str (String) ya da _lv’yi (LoadVars) gösterebiliriz. Her sonek kod ipuçlarının görüntülenmesini sağlamasa da (_gr’de olduğu gibi, çünkü grafikler için ActionScript kodu yazamazsınız), bu adlandırma standardına uymanın önemli faydaları vardır. FLA dosyasının kütüphanesindeki her sembolün veri tipini kolayca hatırlamanızı sağlaması gibi. Aşağıda, değişkenlerde sonek kullanımıyla ilgili bir örnek görüyorsunuz.

var homeContent_lv = new LoadVars();
homeContent_lv.load(“home.txt”);

ActionScript’teki homeContent_lv değişkenini her kullanışınızda lv soneki ilave edilecektir, çünkü bu sonek değişken isminin bir parçasıdır. Her veri tipinin bir soneki olmayabilir (örneğin Object’in bir soneki yoktur). Bu yüzden, farklı değişkenlerinizin her birinde kod ipucu özelliğinden faydalanabilmek için, gerektiğinde bu bölümde anlatılan diğer yöntemleri de kullanmanız gerekebilir.

ActionScript'in Temelleri (Ders 9)

Flash’ın kod ipuçlarını görüntülemesini sağlamak için kullanabileceğiniz üçüncü bir yöntem daha vardır. Bu yöntemde veri tipini (değişkenin içerdiği verinin türü, String, Number, Movie Clip, LoadVars, vs.) ve değişken adını bir açıklamanın içine yazarsınız. Aşağıdaki örneği inceleyin.

// LoadVars homeContent;
homeContent.load(“home.txt”);

Açıklama (comment), ActionScript kodunun içine yazılan bir mesajdır. Açıklamaları, genellikle (kendinize ya da başkalarına) kodun o noktada ne işe yaradığını belirtmek ya da yapılması gereken işlemleri hatırlatmak için kullanırsınız. Açıklamalar herhangi bir kodu çalıştırmaz. Ancak bir açıklamayı bu şekilde kullandığınızda, aslında ActionScript nesnesini (burada bir LoadVars nesnesi) tip belirleme yöntemiyle tanımlamış olursunuz. Bu yüzden, siz değişken adından sonra nokta işaretini girer girmez Actions panelinde ilgili nesneye ait (yukarıdaki örnekte LoadVars) metotların ve özelliklerin yer aldığı bir liste görüntülenir.

Hangi yöntemi kullanacağınız tamamen size kalmıştır. Hangisini kullanacağınıza karar veremiyorsanız, aşağıda gördüğünüz gibi bu yöntemlerin bir bileşimini de kullanabilirsiniz.

var homeContent_lv:LoadVars = new LoadVars();

Kodu bu şekilde yazmak, sonek kullanılması dolayısıyla değişkenin ne olduğunu hatırlamanızı sağlayacağı için avantajlıdır. Bu teknik, ayrıca kesin tip belirleme yöntemini de içerdiği için, değişkeni kazara Number ya da String gibi yanlış bir veri tipine ayarlamaya çalışmanızı da önler.
Bu mesajdan alıntı yap
Hades isimli Üye şimdilik offline konumundadır

Hades

Hiç Biri / Bursa

Standart

Fonksiyonları ve Koşullu Deyimleri Kullanmak

Alt 14-10-2007 #7
Fonksiyonlar (function) tipik olarak bir FLA dosyasında tekrar tekrar kullanılan kod bloklarıdır. Fonksiyonlar, yaptıkları işi tamamladıktan sonra bir değer döndürebilir ve ayrıca çalıştırılma şekillerini değiştirmek üzere fonksiyonlara parametre aktarılabilir. Bağımsız deişken (argument) olarak da adlandırılan parametrelerle, bir fonksiyona değişmeyen (statik) bir değer veya bir değişken aktarabilirsiniz. Bundan sonra, bu değer(ler) fonksiyonunuza ait kodda kullanılabilir ve yönetilebilir. Parametreler fonksiyonunuzun çalıştırılma şeklini değiştirir.

Evde akşam yemeğinizi yaparken aslında siz bir fonksiyonu çalıştırırsınız. Bu bir fonksiyondur, çünkü doğduğunuzda yemek yapmayı bilmiyordunuz. Bunu ya babanızdan ya da büyükannenizden öğrenmişsinizdir. Yemek yapma fonksiyonunuzda değişiklik yapmak üzere “ne”, “ne zaman” ve “ne kadar” gibi parametreler kullanılabilir. Eğer kendi yemek yapma fonksiyonunuzu yazsaydınız, bu muhtemelen şöyle olurdu:

lezizYemekYap=function(ne,neZaman,neKadar)
{
sen.hazirla(ne);
FırınaKoy(neKadar);
pisir=neZaman
return ne
}

Bu örnekte lezizYemekYap, fonksiyonun adıdır. Burada ne yapacağınız yemek; neZaman, yemeği fırına koyacağınız saat ve neKadar da yemeğin fırında kalacağı sürenin miktarıdır. Bu fonksiyonu aşağıda gösterildiği şekilde çağırırsınız.

Self.lezizYemekYap(tavuk, 5:00,1hr);

Fonksiyon çalıştırıldıktan sonra tavuk sonucunu döndürür. Yani tavuk fırından cıkarılır. Mmm, tavuk, nefis.

Not: Bileşenlerin de parametre aldığına dikkat etmiş sinizdir. Yani Properties denetçisini ya da Component Inspector panelini kul anarak girdiğiniz ya da ayarladığınız parametre değerleri, aslında ActionScript’te bileşenler tarafından kullanılan belirli değerleri ayarlamaktadır. Her bileşendeki ActionScript kodu, Flash tasarım ortamında ayarladığınız değerleri temel alarak ne yapması gerektiğini anlar.

Fonksiyonlar, Flash ve ActionScript genelinde kullanılmaktadır. Birçok fonksiyon yerleşik tiptedir, ama ihtiyaçlarınıza göre kendi fonksiyonlarınızı da oluşturabilirsiniz. Daha önce basit stop fonksiyonundan LoadVars sınıfıfnın OnLoad metoduna kadar çeşitli fonksiyon örnekleri görmüştünüz. Aynı script’leri tekrar tekrar yazıyorsanız, benzer kod bloklarını tek bir fonksiyona dönüştürerek ve değişen öğeleri parametrelerle tanımlayarak ActionScript kodlarınızı daha rahat yönetebilirsiniz.

Koşullu deyim (conditional statement), fonksiyondan farklıdır ve belirli bir koşulun değeri true olursa çalışır. Koşullar bir Boolean değerini döndürür (true ya da false). Elde edilen değer, kodun çalıştırılıp çalıştırılmayacağını ya da bazen hangi kodun çalıştırılacağını belirler. Aşağıdaki örnekte bitter çikolatanın sağlığa yararlı olup olmadığını belirlemek için bir koşullu deyim kullanılmıştır. Eğer doktor sağlıklı olduğunu söylerse bitter çikolatayı yiyebilirsiniz. Aksi takdirde çikolata yiyemezsiniz.

if (bitterCikolata == saglikli) {
//eğer bu deyim doğruysa, şunu yap
self.ye(bitterCikolata);
} else {
//eğer bitter çikolata sağlıklı değilse, şunu yap
self.agla();
}

Gördüğünüz gibi koşullu mantığı normal yaşamınızda da, örneğin markete alışverişe gittiğinizde bitter çikolatayla sağlığınız açısından daha faydalı bir şey arasında seçim yaparken, kullanıyorsunuz. Normal hayatta olduğu gibi ActionScript’te de önce durumu değerlendiriyor, sonra da işlemi gerçekleştiriyorsunuz.

Not: Yukarıdaki kodda kullanılan çift eşittir işareti, iki değeri karşılaştırdığınızı gösterir. Daha doğrusu bu şekilde bir şeyin başka bir şeye eşit olup olmadığını görürsünüz. Bu işlemi eşleştirme yapma olarak düşünün.

İpucu: Kodlarda çeşitli girintilerin kullanıldığına dikkat etmiş sinizdir. Bunun yapılmasının tek amacı, kodun rahat okunmasını sağlamaktır. Girintili yazılan kodlar bazen hata ayıklamanızda da faydalı olur. Çünkü bu şekilde, kapatmayı unuttuğunuz bir parantezin olup olmadığın kolayca görebilirsiniz. Girintiler, aynı zamanda deyimlerle koşullu deyimleri birbirinden ayırmanızı sağlar. ActionScript kodlarınıza doğru bir şekilde girinti uygulamak isterseniz, Actions panelindeki Auto Format düğmesini kullanabilirsiniz.
Bu mesajdan alıntı yap
Hades isimli Üye şimdilik offline konumundadır

Hades

Hiç Biri / Bursa

Standart

Faaliyet Alanı

Alt 14-10-2007 #8
6. Derste ActionScript’i oluşturan bazı temel kavramları öğrenmiştiniz (değişkenler, anahtar sözcükler ve veri tipleri gibi). Ayrıca noktalı sözdiziminin çalışma şekli ve ActionScript satırları oluştururken bunun kullanılışı hakkında da biraz bilgi edinmiştiniz. Şimdi ActionScript’in bir FLA dosyasında nerelerde bulunduğunu göreceğiz.


ActionScript’le ilgili en önemli ve bazen de en kafa karıştırıcı konulardan biri, değişken faaliyet alanının çalışma şekliyle, bunun kod yazarken ve Flash dosyalarıyla çalışırken kullanılışıdır. Faaliyet alanı (scope), FLA dosyanızın bir değişkene başvuruda bulunabileceğiniz alanıdır. Yani bir değişken bir fonksiyonun içinde ya da bir Timeline gibi belirli bir yerde mevcutsa, faaliyet alanı da oradadır. Faaliyet alanı kavramının nasıl çalıştığını (ve değişkenlerin nerede bulunduğunu) anlamak için, biraz uygulama yapmak, sabır göstermek ve bir miktar deneyim sahibi olmak gerekir. Kendi projelerinizde farklı senaryoları test ederek, faaliyet alanı kavramının bir Flash dosyasını nasıl etkilediğini kolayca anlayabilirsiniz. Faaliyet alanı konusunu kavramak ve kodların üzerindeki etkisini anlamak için biraz uygulama yapmak gerekebilir. Bu yüzden, bu konu başlangıçta karmaşık görünürse endişelenmeyin.

6. Ders’te değişkenlerin bir veri parçasını içeren birer kaba benzediğini görmüş ve değişkenleri nasıl adlandıracağınızı öğrenmiştiniz. Unutulmaması gereken en önemli kurallardan biri, iki değişkenin aynı isme sahip olamayacağıdır. Ancak faaliyet alanları farklı olan değişkenler aynı isme sahip olabilirler. Bu da, kodun SWF dosyalarının farklı alanlarında nasıl barındığını gösterir. Aşağıda görüldüğü gibi, Flash’ta üç farklı faaliyet alanı vardır.

Yerel değişkenler: Bu değişkenler sadece bir fonksiyonun çağrılması durumunda kullanılabilir. Yerel değişkenler, bir fonksiyonun iki kıvrımlı parantezinin arasında yer alan değişkenlerdir (bunu, daha önceki bir uygulamada görmüştük). Bu fonksiyonun dışında (yani bu fonksiyon çağrılmadığında), bu değişkenler mevcut değildir.

Yerel değişkenler, var anahtar sözcüğü kullanılarak bir fonksiyonun içinde tanımlanırlar ve bu fonksiyon işini bitirerek devreden çıktığında, içindeki değişkenler ortadan kalkar. Yani bir fonksiyonun içinde kullandığınız değişkenleri, kodunuzda ya da Timeline’da başka bir yerde kullanamazsınız. Bu, özellikle ActionScript kodunuzun başka bölümlerinde aynı isme sahip başka değişkenler varsa, bunlarla çakışma olmamasını sağladığı için bir açıdan iyi bir özelliktir. Diğer avantajı, Flash’ın daha az kaynak kullanmasını sağlamasıdır. Çünkü Flash, uygulamanızda artık kullanımda olmayan çok sayıda değişkeni takip etmek zorunda kalmaz. Yerel değişkenler, sadece fonksiyon çalışırken ortaya çıkar ve sonra yok olurlar. Aşağıda bir yerel değişken örneğini görüyorsunuz.

function myVariable() {
var myNum:Number;
//myNum değişkeni burada
}
//myNum değişkeni artık yok.
trace(myNum); //tanımsız

myNum değişkeni için fonksiyonun dışında trace deyimini çalıştırırsanız, tanımsız şeklinde bir sonuç döndürülür, çünkü bu değişken sadece myVariable fonksiyonunun içinde mevcuttur. trace deyiminin, bir belgeyi test ederken Output paneline mesaj göndermek ve kodları test etmek için kullanıldığını hatırlayın.

Not: Aynı değişi ken isimlerini fonksiyonlarda ve diğer faaliyet alanlarında isim çakışmaları olmadan kullanmak mümkündür, ancak bu her zaman tavsiye edilmez. Aynı isimleri kullanmaktan kaçınmanız iyi olacaktır. Çünkü bir FLA dosyasında farklı faaliyet alanlarında aynı isme sahip değişikenler kullandığınızda, ileride kodu düzenlerken kafanız karışabilir.

Timeline değişkenleri: Bu değişkenler sadece aynı Timeline’ler tarafından kullanılabilir. SWF dosyasında birden fazla Timeline olabileceğini unutmayın, çünkü nk bir movie clip ya da bileşende farklı bir seviyede bir Timeline da bulunabilir. Seviyelerin tanımını sıradaki konuda göreceğiz. SWF dosyanızda birden fazla Timeline varsa, bu alanların her birinde farklı Timeline değişkenleri olabilir ve bunlar herhangi bir çakışma olmadan aynı ismi kullanabilir.

Bir değişken bir Timeline’da tanımlandığında, o değişken tanımlandığı noktadan sonraki karelerde kullanılabilir. Örneğin, aşağıdaki kod 10 numaralı kareye yerleştirilirse, ana Timeline’da numUsers adında bir değişken oluşturur. Bu değişken Timeline’da 10 numaralı kareden sonra var olur; 10 numaralı kare oynatılmadan önce, bu değişken SWF dosyasında kul anılamaz.

var numUsers:Number = 5;

Global değişkenler: Bu değişkenler SWF dosyasının içindeki bütün Timeline’larda, faaliyet alanlarında ve fonksiyonlarda kul anılabilir. Bu yüzden, bir global değişken bildirebilir ve sonra ana SWF dosyasına yüklenen diğer SWF dosyalarında ve ana SWF dosyası içinde bulunan değişkenleri, ActionScript kodunda ya da dosya yapısında herhangi bir değişiklik yapmadan kul anabilirsiniz. Global değişkenlerin sağladığı faaliyet alanı ilk iki faaliyet alanından çok farklı değildir. Çünkü bu değişkenler var anahtar sözcüğü ile tanımlanmaz ve aşağıdaki örnekte olduğu gibi önlerine _global anahtar sözcüğü gelir.

_global.numUsers = 5;

Global değişkenleri tanımlarken var anahtar sözcüğünü kullanamadığınız için, global değişkenlerde kesin tip belirleme yöntemini kullanamazsınız. Global değişkenlerde kod ipucu özelliğinden faydalanmak isterseniz, sonek yöntemini (değişkenin sonuna _mc ya da _lv eklemek) ya da açıklama yöntemini kullanmanız gerekebilir.
Bu mesajdan alıntı yap
Hades isimli Üye şimdilik offline konumundadır

Hades

Hiç Biri / Bursa

Standart

_root, _parent, this ve Seviyeler

Alt 14-10-2007 #9
SWF dosyanızdaki farklı bir faaliyet alanında veya Timeline’da bulunan bir değişkeni hedeflemeniz gerekebilir. Bir movie clip ya da bir bileşen içinde yer alan bir kod yazarsanız ve ana Timeline içindeki bir düğme gibi bir öğeye erişmek isterseniz, diğer Timeline’a erişmek için _parent anahtar sözcüğünü kullanmanız gerekir. Bu faaliyet alanlarını, SWF dosyasına ilgili değişkenlere erişmek üzere nereye gitmesinin gerektiğini bildirmek için kullanırsınız. this anahtar sözcüğünü kullandığınızda, geçerli faaliyet alanındaki geçerli nesneye başvuruda bulunursunuz. Örneğin bir movie clip’in içindeyken this anahtar sözcüğünü kullandığınızda, movie clip’e kendisine bakmasını söylemiş olursunuz. _parent anahtar sözcüğü, geçerli nesnenin ebeveyn öğesini gösterir. Mesela Stage’de bir movie clip varsa ve bu movie clip’te _parent anahtar sözcüğü kullanılırsa, movie clip’in üzerinde bulunduğu Timeline’a göndermede bulunmuş olursunuz. SWF dosyalarınızın tamamındaki nesnelere başvuruda bulunmak için, this ve _parent anahtar sözcüklerini birlikte kullanabilirsiniz. Başka bir öğenin içinde bulunan bir movie clip’teyken, diğer movie clip örneklerini ya da bileşen değerlerini kontrol etmek üzere SWF dosyasının hiyerarşisinde gezinmek için, aşağıdakine benzer bir kod satırından faydalanabilirsiniz.

this._parent._parent.otherMovieClip_mc.stop();

this anahtar sözcüğünün kul anımı da anlaşılması zor olabilecek konulardandır. Bağlama göre, this anahtar sözcüğü farklı şeyleri belirtebilir. Bir movie clip örneğinin içinde kul anırsanız, this anahtar sözcüğü bu movie clip’in Timeline na göndermede bulunur. Bir düğme fonksiyonunda kul anırsanız, this anahtar sözcüğü düğmenin kendisini değil de düğme örneğini içeren Timeline’ı belirtir. Doğrudan bir movie clip'e ilştirilmiş bir onClipEvent() işleyicisiyle kullanıldığında ise, this anahtar sözcüğü movie clip’in Timeline nı belirtir.

Sonraki sayfada yer alan kodu inceleyin. Aşağıdaki gibi bir kodu ana Timeline’a yerleştirirseniz, bu kod çok farklı şeyler yapar. Diyelim ki çalışan bir SWF dosyanız var ve Stage’de, yine bir içeriği oynatmakta olan myClip adında bir movie clip’iniz va. ActionScript aracılığıyla onRelease olay işleyicisini ekleyerek, movie clip’lere birer düğme gibi davranabilirsiniz (bunu daha önce oluşturduğunuz movie clip düğmelerine uygulayacaksınız).

myClip_mc.onRelease = function() {
this.stop();
};

Bu ActionScript kodu, eğer oynatılıyorsa myClip_mc örneğinin kendisini durdurur. Fonksiyonun içindeki kod, this anahtar sözcüğünü kul anarak movie clip’in Timeline nı hedefler. Bunun yerine, aşağıdaki ActionScript kodunu kul andığınızda bu kod movie clip’in Timeline yerine ana Timeline’ı durdurur.

myClip_mc.onRelease = function(){
stop();
};

Movie clip bir düğme gibi değerlendirilir ve düğmeler içinde bulundukları Timeline’ı hedeflerler, düğmenin kendi Timeline’ını değil. Bu da tabii ki this anahtar sözcüğünü kullanmamanız durumunda geçerlidir.

Flash kullanırken ve başkalarının yazdığı ActionScript kodlarını incelerken, _root anahtar sözcüğünün sıkça kullanıldığını göreceksiniz. _root kullanıldığında, bu ana Timeline’ın hedeflendiği anlamına gelir. Bu, sabit diskinizin kök dizinine (örneğin C: ) ya da bir Web sitesinin kök klasörüne gitmeye benzer. Buna genelde mutlak başvuru denir. Mutlak başvuru tekniğini Web sitelerinde olduğu gibi (mutlak başvuru kullandığınızda, sitenizi başka bir etki alanına aktarmanız zor olacaktır), Flash’ta kullanmak da genelde en iyi yaklaşım değildir, çünkü ActionScript kodlarınızı başka bir yere taşımanız zor olacaktır. Bu, SWF dosyalarını başka SWF dosyalarına yüklerken de sorun yaratabilir.

_root kullandığınızda ortaya çıkan sorunların sebebi açıktır. Bir FLA dosyasında _root’a başvuruda bulunduğunuzda, belge yayınlandığında SWF dosyasının ana Timeline’ına başvurmuş olursunuz. Fakat bu SWF dosyasını farklı bir SWF dosyasına yüklediğinizde root, diğerini kendisine yüklediğiniz SWF dosyası olur. Bu durumu, lockroot özelliğini kullanarak kontrol edebilirsiniz. lockroot, ilgili movie clip’e ya da SWF dosyasına, root başvurularının o SWF dosyasından ya da movie clip’ten daha ileriye gitmemesi gerektiğini söyler. Bu durumda movie clip’lere ve SWF dosyalarına sanki ana belge Timeline’ıymış gibi davranmalarını söylersiniz. lockroot, “Patron sensin” diyen bir özelliktir ve çok faydalıdır. Bu özellik true ya da false değeri alır ve aslında bu konu kitabın kapsamı dışındadır.

Oluşturduğunuz uygulamada, Stage’’deki movie clip’lerin içinde yuvalanmış olarak kodlar ya da kodun hedeflediği elemanlar bulunur. Eğer bu movie clip’ler boşsa, bunların herhangi birine bir SWF dosyası yükleyebilmeniz gerekir ve bu SWF dosyası ana Timeline’daki nesneleri hedefleyebilirsiniz. Eğer movie clip’e yüklenen Swf dosyasının içinde kodunuz varsa _parent anahtar sözcüğünü kullanarak ana Timeline’ı ya da ana Timeline’daki nesneleri hedefleyebilirsiniz. SWF dosyalarını uygulamaya yüklemenin diğer yolu, seviyeleri kullanmaktır.

Seviyeler (level) Flash Player’a ait öğelerdir ve döşeme tahtaları görünmeyen birer zemin gibidirler. Bir seviyeye yüklenen ilk SWF dosyası yapının geri kalanının temelini oluşturur ve 0 seviyesine yüklenir. Bu dosya, HTML sayfasındaki Flash Player nesnesinin genişliğini ve yüksekliğini, arka plan rengini ve kare hızını belirler. Buradan itibaren diğer SWF dosyalarını diğer seviyelere yükleyebilirsiniz; bu SWF dosyaları, ilk SWF dosyası tarafından belirlenen arka plan rengini ve kare hızını kalıtım yoluyla alır ve bunların sol üst köşeleri ilk SWF dosyasının sol üst köşesiyle hizalanır. SWF dosyaları binalardaki katlar, ya da baklavanın katları gibi üst üste yığılır.

Flash Player’a ilk yüklenecek belgenin seviyesi _level0 ile gösterilir. Seviyeler buradan sonra _ level1’dan başlayarak çok büyük bir sayıya (kitab ın yazarının duyduğuna göre 2 milyonun üstünde bir sayı) kadar üst üste yığılabilir. SWF dosyalarını seviyelere sırayla yüklemeniz gerekmez. İlk SWF dosyasını Flash Player’a, gezinti çubuğunu 150 numaralı seviyeye (_level150) ve tüm içeriği bu ikisinin arasında bir yere yükleyebilirsiniz; dolayısıyla gezinti çubuğu her zaman diğerlerinin üstünde olur. Bunların hepsi çok görecelidir. SWF dosyasını _level0 seviyesine yükleyebilir ve ana Timeline’ın içeriğiyle değiştirebilirsiniz. Bu, orijinal clip’in uygulamanın tamamında ihtiyacınız olan değişkenleri ve özellikleri içermesi durumunda pek iyi bir fikir olmayabilir.

İpucu: Bir SWF dosyasını bir movie clip’e ya da bileşene (Loader gibi) yüklediğinizde, bu dosya yeni bir seviyeye yüklenmiş olmaz, ilgili movie clip ya da bileşen örneğinin kendisine yüklenir. Bu aşamadan sonra içerik movie clip’te saklanır ve Stage’deki diğer movie clip’ler gibi değerlendirilir. Bu da, değişken benzeri verilerin daha kolay yönetilmesini sağlar.

Yüklenen bir SWF dosyasının farklı seviyesindeki bir öğeyi hedeflemeniz gerekiyorsa, aşağıdaki gibi bir kod satırı kullanabilirsiniz.

_level2.myMovieClip_mc.gotoAndPlay(3);

İpucu: Yüklenen bir SWF dosyasını hedefleyen bir kodu çağırmadan önce, içeriğin tamamen yüklenmiş olduğundan emin olun. Aksi takdirde, çağırdığınız kod düzgün bir şekilde çalışmayacaktır.
Bu mesajdan alıntı yap
Hades isimli Üye şimdilik offline konumundadır

Hades

Hiç Biri / Bursa

Standart

LoadVars Sınıfı

Alt 14-10-2007 #10
Tech Bookstore Web sitesi boyunca LoadVars sınıfıfnı kullanmaya devam edeceksiniz. Artık sınıflar, nesneler, metotlar, özellikler, fonksiyonlar ve koşullu deyimler konularına daha fazla hâkim olduğunuza göre, bütün bu kavramları bir araya getirmek için LoadVars sınıfını bir örnek olarak incelemeye hazırsınız demektir.


LoadVars nesnesi, güncellenmesi kolay dinamik Web siteleri oluşturmak için kullanabileceğiniz basit bir yöntemdir. LoadVars, harici bir metin dosyasında tanımlanan değişkenleri Flash’a anında yükleyebilir. Daha sonra bu değişkenler, veri yüklemek için kullandığınız LoadVars nesnesinin özellikleri haline gelir ve benzer şekilde ActionScript kodunuzun geri kalan kısmı boyunca referans olarak kullanılabilir. LoadVars nesnesi SWF dosyası tarayıcıda çalışırken bir metin alanından veri yüklediği için, verilerdeki her türlü değişiklik, Flash dosyasını güncellemek üzere metin dosyasının kendisinde yapılabilir. Dosyayı yeniden yayınlamak gerekmez. LoadVars nesnesini kullanmanın diğer bir avantajı da, sunucu tarafı dillerden birini (ColdFusion, PHP, ASP ya da Java gibi) kullanırken, sunucu tarafı bir veritabanını sorgulayarak en yeni makaleleri daha sonra bir SWF dosyası tarafıyüklenecek bir metin dosyasına yazmasının mümkün olmasıdır.

Flash ve LoadVars nesnesini üç farklı şekilde kullanabilirsiniz: send, sendAndLoad ve load.

•send, sadece verileri bir sunucuya gönderir. Veriler, burada sunucu tarafı
tarafı mesajı olarak gönderilebilir (ya da sunucu tarafı göre kullanılabilir).

•sendAndLoad, verileri sunucuya gönderir, ama aynı zamanda sunucudan gelen cevabı alarak sonucu bir LoadVars nesnesine yerleştirir. Değişkenler burada yönetilebilir ya da Flash aracılığıyla görüntülenebilir. Değişkenleri yüklemek ve kullanmak, bir ISBN numarasını sunucunuzdaki bir şablona göndermek ve sunucu tarafı sorgulamasını, ardından bir kitap incelemesini ya da bir kitapla ilgili bilgileri alarak sonucu bir SWF dosyasında görüntülenmek üzere Flash’a göndermesini istiyorsanız, TechBookstore sitesi için faydalı olabilir. Buradaki son metot load’dur. Tech Bookstore sitesinde daha çok bu metodu kullanacaksınız.

•load metodu, bir metin dosyasındaki değişkenleri yükler ve siz de bu değişkenleri TextArea bileşen örneklerinde ya da Tech Bookstore uygulamasında başka bir yerde görüntülersiniz.

Aşağıda, Flash tarafından kullanılabilecek basit bir metin dosyası örneğini görüyorsunuz.

&name=Sue&

Önceki basit metin dosyasını sendAndLoad veya load metodunu kullanarak yüklediğinizde, Flash, hedef LoadVars nesnesinde name adında yeni bir değişken oluşturur ve buna Sue değerini atar. Her bir isim/değer çiftini VE işaretiyle (&) ayırarak ve eşittir işaretlerini kullanmaya devam ederek metin dosyasına istediğiniz kadar değişken ekleyebilirsiniz. Şu örneği inceleyin:

&name=James&
&position=mentor&
&manager=Nate W&

Buradaki kod, Flash’ta üç ayrı değişken oluşturmaktadır: name, position ve manager. name değişkeninin değeri James, position değişkeninin değeri mentor ve manager değişkeninin değeri Nate W olarak ayarlanmıştır. Bu değerleri LoadVars sınıfıfnı kullanarak Flash’a yüklemek için, bu ifadeyi testfile.txt adındaki bir metin dosyasına kaydedin ve boş bir Flash belgesine aşağıdaki ActionScript kodunu ekleyin.

var test_lv:LoadVars = new LoadVars();
test_lv.load(“testfile.txt”);
test_lv.onLoad = function(success:Boolean) {
trace(this.name);
};

Bu örnekte LoadVars kullandığınız için, örnek kodu test etmeden önce Flash belgesini testfile. txt belgesiyle aynı klasöre kaydetmelisiniz.

İpucu: Metin dosyalarını, onları yükleyecek olan SWF dosyasından farklı bir dizine yerleştirebilirsiniz. Bunun için load metodunda dosyaya doğru şekilde başvuruda bulunduğunuzdan emin olmanız yeterlidir: test_lv.load(“textFiles/testFile.txt”), vs.

Bu kod, test_lv adında bir LoadVars nesnesi yaratmaktadır. Harici dosyayı, LoadVars sınıfındaki load metodunu kullanarak yüklüyorsunuz. Bu da ActionScript kodunun ikinci satırında gerçekleşiyor. Bu metot tek parametre almaktadır. Bu da, yüklemek istediğiniz dosyaya giden yoldur. Burada, geçerli Flash belgesiyle aynı klasörde bulunan testfile.txt adındaki bir dosyaya yüklüyorsunuz.

Bir sonraki kod parçası biraz karmaşık gelebilir. LoadVars sınıfıf, Flash’ın belirli şeyler gerçekleştiğinde tetiklediği birkaç tane olaya da sahiptir. Buradaki kodda tetiklenen olay onLoad’dur ve bu olay, load metodunda tan ımlanan metin dosyası Flash’ a tamamen yüklendiğinde tetiklenir. Basitçe anlatmak gerekirse bu kod, “Belirtilen metin dosyası yüklendikten sonra şu kodu çalıştır” der. Dosya tamamen yüklendikten ve onLoad olayı tetiklendikten sonra, testfile.txt dosyasında tanımlanan üç değişkeniniz test_lv LoadVars nesnesinde depolanır. Yani test_lv.manager’ın değerini Trace ile izleyebilir ve Output panelinde Nate W değerini görebilirsiniz. Önceki kodda, yerel ya da anonim fonksiyon adı verilen bir öğe kullanmıştınız; bu, aslında kendisine herhangi bir isim verilmemiş bir fonksiyondur.

Bir yerel fonksiyon (inline function), isimli fonksiyonlarla aynı şeyi yapar. Arada bazı farklar var ve bunlardan biri, bu fonksiyonların belirli bir nesneye iliştirilmesi ve belirli bir işlemi gerçekleştirmesidir. Diğer fark da şudur: Bu fonksiyonlar bellekte dolaşarak çağrılmayı beklemezler. Bu fonksiyonlar bir olay gerçekleştiğinde oluşturulur, cevap olarak çalıştırılır ve ihtiyaç duyuldukları bir sonraki duruma kadar bellekten silinirler.
Bu mesajdan alıntı yap
Sponsor Links

Grafikerler.net Reklamları

Cevapla

Tags
actionscript 20, actionscriptin, actionscriptin temelleri, ana katalogu hazirlamak, ders, faaliyet alani, fonksiyonlari kullanmak, giris sayfasini olusturmak, haberler sayfasini olusturmak, inceleme sayfasinin olusturulmasi, isleyicileri kullanmak, izleyicileri kullanmak, katalog sayfalarini olusturmak, kesin tip belirleme, kod ipuclarini kullanmak, kosullu deyimleri kullanmak, loadvars sinifi, metotlar ve ozellikler, olaylari kullanmak, seviyeler, siniflar, temelleri, this, _parent, _root

Benzer Konular
Konu Konu Bilgileri Forum Cevaplar Son Mesaj
Desenler -Çizim teknik temelleri Ressam Halil ŞİKAR Corel Draw 25 10-10-2012 17:17:05
v-ray video ders Mustafa KÜÇÜK 3D Studio Max 18 04-02-2011 02:08:11
ImageReady ile Gif Animasyonun Temelleri Yorkshire ImageReady 19 26-12-2010 13:59:52
Çağdaş Tipografinin Temelleri (Görsel İletişim ve Grafik Tasarımda) mavitayfa Basılı Yayınlar 8 22-02-2010 10:22:34
Photoshop 3D ders St.ONe Photoshop 16 30-12-2009 00:17:56

Kapat
Şifremi Unuttum?