En Güncel Flashlar

Kişisel Portföy Sitesi TemplatesiKişisel Portföy Sitesi TemplatesiKişisel, kendinize özel yapacağınız sitelerinizde gayet işe yarayacaktır. Hangi sektör olursa olsun, her sektöre uyum sağlayabilecek bit templatedir....

İncele

Adobe Flash Player Versiyon 10 YükleAdobe flash player ailesine yeni bir kalite daha kattı. Adobe flash player 10...

İncele

Home Refinance LoanOto Galeri İçin Flash Templateler - Tm 15522 İndir Oto galerileri için güzel, basit bir flash site templatesidir. Özellikle sıfır araç satışı yapan firmalar için gayet uygun olabilecek bir templatededir....

İncele

Flash Patlama Ses Efektleri 55 adetFlash dökümanlarınızda kullanabileceğiniz çeşit çeşit ses dosyalarını bulabileceksiniz...

İncele

Flash AS3 DersleriActionScript 3.0 ile ilgili öğrenmek istediğiniz herşey blogumuzda...

İncele

Rss

Php + Flash Ziyaretçi Defteri İndir

4

Gönderen graficihad | Etiketler: flash questbook, flash ziyaretçi defteri, php and flash questbooks, php ziyaretçi defteri | Posted on 28 Eylül 2009 Pazartesi



Flash sitelerinizde ziyaretçilerinizin, siteleniz hakkında düşündüklerini yazabileceği, kullanımı çok kolay bir ziyaretçi defteridir. Grafiğini istediğiniz gibi düzenleyebilirsiniz. Flash bilginiz var ise eğer, güzel bir grafik uygulanırsa çok iş görecek bir yapı.

Php Flash Ziyaretçi Defteri Buradan İndir

Flash ta Hazırlanmış Örnek Oyun Çalışması

0

Gönderen graficihad | Etiketler: flash game, flash oyun, flash oyun indir, flash oyun yapımı, flash ta oyun yap, örnek flash oyunlar | Posted on

Flash 'ta hazırlanmış gayet basit bir oyun çalışmasıdır.
Sizde flash oyun mantığını bu oyunu inceleyerek öğrenebilir
ve size özel flash oyunlar yapabilirsiniz.
.fla kaynak dosyası orjinal olarak ekteki dosyadadır.




Örnek Flash Oyun Dosyalarını Buradan İndir

Flash AS3 Nesne olarak işlevler

0

Gönderen graficihad | Etiketler: flash as3 ders, flash nesne işlevleri, flash nesne olarak işlevler | Posted on 8 Eylül 2009 Salı

ActionScript 3.0'daki işlevler nesnelerdir. Bir işlev oluşturduğunuzda, yalnızca başka bir işleve parametre olarak iletilmekle kalmayan aynı zamanda kendisine eklenmiş özellik ve yöntemlerin de bulunduğu bir nesne oluşturursunuz.

Başka bir işleve argümanlar olarak iletilen işlevler, değere göre değil, başvuruya göre iletilir. Bir işlevi argüman olarak ilettiğinizde, yöntemi çağırmak için parantez operatörünü değil yalnızca tanımlayıcıyı kullanırsınız. Örneğin, aşağıdaki kod, addEventListener() yöntemine argüman olarak clickListener() adında bir işlev iletir:

addEventListener(MouseEvent.CLICK, clickListener);

Array.sort() yöntemi ayrıca bir işlevi kabul eden bir parametreyi de tanımlar. Array.sort()


ActionScript'i ilk defa kullanan programcılar için bu garip görünse de, işlevler tıpkı diğer nesneler gibi özelliklere ve yöntemlere sahip olabilir. Aslında, her işlev, kendisi için tanımlı parametrelerin sayısını saklayan length adında salt okunur bir özelliğe sahiptir. Bu, işleve gönderilen argümanların sayısını bildiren arguments.length özelliğinden farklıdır. ActionScript'te, bir işleve gönderilen argüman sayısının, o işlev için tanımlanmış parametre sayısını aşabileceğini unutmayın. Katı mod, iletilen argümanların sayısı ile tanımlanan parametrelerin sayısı arasında tam eşleşme gerektirdiğinden yalnızca standart modda derleme yapan aşağıdaki örnek, iki özellik arasındaki farkı gösterir:

// Compiles only in standard mode
function traceLength(x:uint, y:uint):void
{
trace("arguments received: " + arguments.length);
trace("arguments expected: " + traceLength.length);
}

traceLength(3, 5, 7, 11);
/* output:
arguments received: 4
arguments expected: 2 */

Standart modda, kendi işlev özelliklerinizi işlev gövdesinin dışında tanımlayabilirsiniz. İşlev özellikleri, işlevle ilgili bir değişkenin durumunu kaydetmenize olanak sağlayan yarı durağan özellikler görevi görebilir. Örneğin, belirli bir işlevin kaç defa çağrıldığını izlemek isteyebilirsiniz. Bir oyun yazıyorsanız ve bir kullanıcının belirli bir komutu kaç defa kullandığını izlemek istiyorsanız, statik sınıf özelliği kullanabilseniz de, bu işlevsellik kullanışlı olabilir. Katı mod, işlevlere dinamik özellikler eklemenize olanak sağlamadığından yalnızca standart modda derleme yapan aşağıdaki örnek, işlev bildirimi dışında bir işlev özelliği oluşturur ve işlev her çağrıldığında özelliği artırır:

// Compiles only in standard mode
var someFunction:Function = function ():void
{
someFunction.counter++;
}

someFunction.counter = 0;

someFunction();
someFunction();
trace(someFunction.counter); // 2

Flash As3 İşlev parametreleri

1

Gönderen graficihad | Etiketler: as3 parametreler, flash as3 ders, flash işlev parametreleri | Posted on

ActionScript 3.0, dil kullanımında tecrübesiz olan programcılar için yeni gibi görünen bazı işlev parametreleri işlevleri sağlar. Değere veya başvuruya göre parametre iletme kavramı çoğu programcılara tanıdık gelse de, arguments nesnesi ve ... (rest)parametresi birçoğu için yeni olabilir.

Değere veya başvuruya göre argümanları iletme

Çoğu programlama dilinde, değere veya başvuruya göre argümanları iletme arasındaki ayrımın anlaşılması önemlidir; bu ayrım kodun tasarlanma şeklini etkileyebilir.

Değere göre iletilme, argüman değerinin, işlev içinde kullanılmak üzere yerel bir değişkene kopyalanması anlamına gelir. Başvuruya göre iletilme ise gerçek değerin değil, yalnızca argümanın bir başvurusunun iletilmesi anlamına gelir. Gerçek argümanın herhangi bir kopyası oluşturulmaz. Bunun yerine, argüman olarak iletilen değişkenin başvurusu oluşturulur ve işlev içinde kullanılmak üzere yerel değişkene atanır. Yerel değişken, işlev dışındaki bir değişkenin başvurusu olarak, size orijinal değişkenin değerini değiştirme yeteneği sağlar.

ActionScript 3.0'da, tüm değerler nesneler olarak saklandığından, tüm argümanlar başvuruya göre iletilir. Ancak, Boolean, Number, int, uint ve String gibi ilkel veri türlerine ait olan nesneler, değere göre iletilmiş gibi davranmasını sağlayan özel operatörlere sahiptir. Örneğin, aşağıdaki kod, her ikisi de int türünde olan xParam ve yParam adında iki parametreyi tanımlayan passPrimitives() adında bir işlev oluşturur. Bu parametreler, passPrimitives() işlevinin gövdesinde bildirilen yerel değişkenlere benzer. İşlev, xValue ve yValue argümanlarıyla çağrılırsa, xParam ve yParam parametreleri, xValue ve yValue tarafından temsil edilen int nesnelerinin başvurularıyla başlatılır. Argümanlar ilkel olduğundan, bunlar değere göre iletilmiş gibi davranır. xParam ve yParam öğeleri başlangıçta xValue ve yValue nesnelerini içerse de, işlev gövdesi içinde değişkenler üzerinde yapılan tüm değişiklikler bellekte değerlerin yeni kopyalarını oluşturur.

function passPrimitives(xParam:int, yParam:int):void
{
xParam++;
yParam++;
trace(xParam, yParam);
}

var xValue:int = 10;
var yValue:int = 15;
trace(xValue, yValue);// 10 15
passPrimitives(xValue, yValue); // 11 16
trace(xValue, yValue);// 10 15

passPrimitives() işlevi içinde, xParam ve yParam değerleri artırılır ancak bu, son trace deyiminde gösterildiği gibi, xValue ve yValue değerlerini etkilemez. İşlevin içindeki xValue ve yValue öğeleri, bellekte, işlev dışında aynı addaki değişkenlerden ayrı olarak varolan yeni konumları işaret ettiğinden, parametreler xValue ve yValue değişkenleriyle aynı şekilde adlandırılsaydı da bu durum geçerli olurdu.

Diğer tüm nesneler—başka bir deyişle, ilkel veri türünde olmayan nesneler—her zaman başvuruya göre iletilir ve bu da size orijinal değişkenin değerini değiştirme yeteneği sağlar. Örneğin, aşağıdaki kod, x ve y olmak üzere iki özellikle objVar adında bir nesne oluşturur. passByRef() işlevine argüman olarak iletilen nesne. Nesne ilkel türde olmadığından, yalnızca başvuruya göre iletilmekle kalmaz aynı zamanda başvuru olmaya devam eder. Başka bir deyişle, işlev içinde parametreler üzerinde yapılan değişiklikler, işlev dışındaki nesne özelliklerini etkiler.

function passByRef(objParam:Object):void
{
objParam.x++;
objParam.y++;
trace(objParam.x, objParam.y);
}
var objVar:Object = {x:10, y:15};
trace(objVar.x, objVar.y); // 10 15
passByRef(objVar); // 11 16
trace(objVar.x, objVar.y); // 11 16

objParam parametresi, genel objVar değişkeniyle aynı nesneye başvurur. Örnekteki trace deyimlerinde de görebileceğiniz gibi, objParam nesnesinin x ve y özellikleri üzerinde yapılan değişiklikler, objVar nesnesinde yansıtılır.

Varsayılan parametre değerleri

ActionScript 3.0'daki bir yenilik de, bir işlev için varsayılan parametre değerleri bildirme yeteneğidir. Varsayılan parametre değerleri içeren bir işleve yapılan çağrı, varsayılan değerleri içeren bir parametreyi çıkarırsa, o parametre için işlev tanımında belirtilen değer kullanılır. Varsayılan değerlere sahip tüm parametrelerin parametre listesinin sonuna yerleştirilmesi gerekir. Varsayılan değer olarak atanan değerlerin derleme zamanı sabitleri olması gerekir. Bir parametre için varsayılan bir değerin olması, o parametreyi etkili şekilde isteğe bağlı parametre yapar. Varsayılan değer içermeyen bir parametre, zorunlu parametre olarak değerlendirilir.

Örneğin, aşağıdaki kod üç parametre içeren bir işlev oluşturur, bu parametrelerin ikisi varsayılan değerleri içerir. Yalnızca bir parametreyle işlev çağrıldığında, parametrelerin varsayılan değerleri kullanılır.

function defaultValues(x:int, y:int = 3, z:int = 5):void
{
trace(x, y, z);
}
defaultValues(1); // 1 3 5

arguments nesnesi

Bir işleve parametreler iletildiğinde, işlevinize iletilen parametreler hakkındaki bilgilere erişmek için arguments nesnesini kullanabilirsiniz. arguments nesnesinin önemli yönlerinden bazıları şunlardır:

  • arguments nesnesi, işleve iletilen tüm parametreleri içeren bir dizidir.

  • arguments.length özelliği, işleve iletilen parametrelerin sayısını bildirir.

  • arguments.callee özelliği, işlevin kendisine bir başvuru sağlar, bu da işlev ifadelerine yapılan yinelemeli çağrılar için kullanışlıdır.

    Not: Herhangi bir parametre arguments olarak adlandırılırsa veya ... (rest) parametresini kullanırsanız, arguments nesnesi kullanılamaz.

    İşlev gövdesinde arguments nesnesie başvurulursa, ActionScript 3.0, işlev çağrılarının, işlev tanımında tanımlananlardan daha fazla parametre içermesine olanak sağlar, ancak parametre sayısı, zorunlu parametre (ve isteğe bağlı olarak isteğe bağlı parametre) sayısıyla eşleşmezse, bu katı modda bir derleyici hatası oluşturur. İşlev tanımında tanımlansa da tanımlanmasa da, işleve iletilen herhangi bir parametreye erişmek için arguments nesnesinin dizi yönünü kullanabilirsiniz. Yalnızca standart modda derleme yapan aşağıdaki örnek, traceArgArray() işlevine iletilen tüm parametreleri izlemek için arguments.length özelliğiyle birlikte arguments dizisini kullanır:

    function traceArgArray(x:int):void
    {
    for (var i:uint = 0; i <>


    traceArgArray(1, 2, 3);

    // output:
    // 1
    // 2
    // 3

    arguments.callee özelliği genellikle yineleme oluşturmak için adsız işlevlerde kullanılır. Kodunuza esneklik katmak için bunu kullanabilirsiniz. Yinelemeli işlevin adı, geliştirme döngünüzde değişirse, işlev adı yerine arguments.callee öğesini kullanıyorsanız, işlev gövdenizde yinelemeli çağrıyı değiştirmekle ilgili endişe duymanız gerekmez. Yinelemeyi etkinleştirmek için, aşağıdaki işlev ifadesinde arguments.callee özelliği kullanılır:

    var factorial:Function = function (x:uint)
    {
    if(x == 0)
    {
    return 1;
    }
    else
    {
    return (x * arguments.callee(x - 1));
    }
    }

    trace(factorial(5)); // 120

    İşlev bildiriminizde ... (rest) parametresini kullanırsanız, arguments nesnesini kullanamazsınız. Bunun yerine, parametreler için bildirdiğiniz parametre adlarını kullanarak parametrelere erişmeniz gerekir.

    Ayrıca parametre adı olarak "arguments" dizesini kullanmaktan kaçınmalısınız, aksi takdirde bu, arguments nesnesini gölgeler. Örneğin, bir arguments parametresi eklenecek şekilde traceArgArray() işlevi yeniden yazılırsa, işlev gövdesinde arguments öğesine başvurular, arguments nesnesini değil, parametreyi ifade eder. Aşağıdaki kod herhangi bir çıktı oluşturmaz:

    • function traceArgArray(x:int, arguments:int):void
      {
      for (var i:uint = 0; i <>

    Önceki ActionScript sürümlerinde bulunan arguments nesnesi de geçerli işlevi çağıran işlevin başvurusu niteliğindeki caller adında bir özellik içerirdi. caller özelliği ActionScript 3.0'da yoktur ancak çağıran işleve başvuru gerekiyorsa, çağıran işlevi, başvurunun kendisi olan fazladan bir parametreyi iletecek şekilde değiştirebilirsiniz.

... (rest) parametresi

ActionScript 3.0, ... (rest) parametresi adında yeni bir parametre içerir. Bu parametre, virgül sınırlı herhangi bir sayıda argümanı kabul eden bir dizi parametresi belirtmenize olanak sağlar. Parametre, ayrılmış sözcükler dışında herhangi bir ada sahip olabilir. Bu parametre bildiriminin belirtilen son parametre olması gerekir. Bu parametrenin kullanılması, arguments nesnesini kullanılamaz duruma getirir. ... (rest) parametresi, arguments dizisi ve arguments.length özelliğiyle aynı işlevselliği verse de, bu, arguments.callee tarafından sağlanan işlevselliğe benzer bir işlevsellik sağlamaz. ... (rest) parametresini kullanmadan önce arguments.callee öğesini kullanmadığınızdan emin olmanız gerekir.

Aşağıdaki örnek, arguments nesnesi yerine ... (rest) parametresini kullanarak traceArgArray() işlevini yeniden yazar:

function traceArgArray(... args):void
{
for (var i:uint = 0; i <>

... (rest) parametresi ayrıca listedeki son parametre olduğu sürece diğer parametrelerle de kullanılabilir. Aşağıdaki örnek, işlevin birinci parametresi (x) int türünde olacak ve ikinci parametre de ... (rest) parametresini kullanacak şekilde traceArgArray() işlevini değiştirir. Birinci parametre artık ... (rest) parametresi tarafından oluşturulan dizinin bölümü olmadığından, çıktı birinci değeri atlar.

function traceArgArray(x: int, ... args)
{
for (var i:uint = 0; i <>

Flash As3 Temel işlev kavramları

0

Gönderen graficihad | Etiketler: as3 temel işlevler, flash as3 ders, flash işlev kavramları, flash temel işlevler | Posted on

Bu bölümde, temel işlev tanımı ve çağırma teknikleri ele alınmaktadır.

İşlevleri çağırma

Bir işlevin, ardından parantez operatörü (()) gelen tanımlayıcısını kullanarak o işlevi çağırabilirsiniz. İşleve göndermek istediğiniz herhangi bir işlev parametresini kapsamak için parantez operatörünü kullanırsınız. Örneğin, bu kitapta, ActionScript 3.0'da üst düzey işlev olan trace() işlevi kullanılmıştır:

trace("Use trace to help debug your script");

Herhangi bir parametre içermeyen bir işlevi çağırıyorsanız, boş bir parantez çifti kullanmanız gerekir. Örneğin, rastgele bir sayı oluşturmak için, herhangi bir parametre almayan Math.random() yöntemini kullanabilirsiniz:

var randomNum:Number = Math.random();

Kendi işlevlerinizi tanımlama

ActionScript 3.0'da bir işlevi tanımlamanın iki yolu vardır: bir işlev deyimini veya işlev ifadesini kullanabilirsiniz. Seçtiğiniz teknik, daha statik veya daha dinamik bir programlama stili seçmenize bağlıdır. Statik veya katı mod programlamayı tercih ediyorsanız işlevlerinizi işlev deyimleriyle tanımlayın. Aksini yapmanız gerekiyorsa, işlevlerinizi işlev ifadeleriyle tanımlayın. İşlev ifadeleri, dinamik veya standart mod programlamada daha sık kullanılır.

İşlev deyimleri

İşlev deyimleri, katı modda işlevleri tanımlamak için tercih edilen tekniktir. Bir işlev deyimi, function anahtar sözcüğüyle başlar ve şunlarla devam eder:

  • İşlev adı

  • Parantez içindeki virgül sınırlı bir listede yer alan parametreler

  • İşlev gövdesi—başka bir deyişle, işlev çağrıldığında çalıştırılacak, küme ayracı içine alınmış ActionScript kodu

    Örneğin, aşağıdaki kod, bir parametreyi tanımlayan bir işlev oluşturur ve sonra parametre değeri olarak “ hello" dizesini kullanarak işlevi çağırır:

    function traceParameter(aParam:String)
    {
    trace(aParam);
    }

    traceParameter("hello"); // hello

İşlev ifadeleri

Bir işlev bildirmenin ikinci yolu, aynı zamanda bazen bir işlev değişmezini veya adsız işlevi çağıran işlev ifadesiyle bir atama deyiminin kullanılmasıdır. Bu, önceki ActionScript sürümlerinde yaygın olarak kullanılan daha ayrıntılı bir yöntemdir.

İşlev ifadesi içeren bir atama deyimi, var anahtar sözcüğüyle başlar ve şunlarla devam eder:

  • İşlev adı

  • İki nokta operatörü (:)

  • Veri türünü belirtecek Function sınıfı

  • Atama operatörü (=)

  • function anahtar sözcüğü

  • Parantez içindeki virgül sınırlı bir listede yer alan parametreler

  • İşlev gövdesi—başka bir deyişle, işlev çağrıldığında çalıştırılacak, küme ayracı içine alınmış ActionScript kodu

    Örneğin, aşağıdaki kod, bir işlev ifadesi kullanarak traceParameter işlevini bildirir:

    var traceParameter:Function = function (aParam:String)
    {
    trace(aParam);
    };
    traceParameter("hello"); // hello

    İşlev deyiminde yaptığınız gibi bir işlev adı belirtmediğinize dikkat edin. İşlev ifadeleri ile işlev deyimleri arasındaki başka bir önemli fark, işlev ifadesinin deyim yerine bir ifade olmasıdır. Başka bir deyişle, bir işlev ifadesi, işlev deyimi gibi tek başına duramaz. İşlev ifadesi yalnızca bir deyimin parçası olarak kullanılabilir ve bu genellikle bir atama deyimi olur. Aşağıdaki örnek, bir dizi örneğine atanmış işlev ifadesini gösterir:

    var traceArray:Array = new Array();
    traceArray[0] = function (aParam:String)
    {
    trace(aParam);
    };
    traceArray[0]("hello");

Deyimler ile ifadeler arasında tercih yapma

Genel bir kural olarak, belirli koşullar bir ifade kullanımını gerektirmediği sürece, işlev deyimini kullanın. İşlev deyimleri daha az ayrıntılıdır ve katı mod ile standart mod arasında işlev ifadelerine göre daha tutarlı bir deneyim sağlar.

İşlev deyimlerinin okunması, işlev ifadelerini içeren atama deyimlerinden daha kolaydır. İşlev deyimleri kodunuzu daha kısa hale getirir; hem var hem de function anahtar sözcüklerini kullanmanızı gerektiren işlev ifadelerinden daha az karmaşıktır.

İşlev deyimleri, bir işlev deyimi kullanılarak bildirilmiş bir yöntemi çağırmak için nokta sözdizimini hem katı hem de standart modda kullanabilmenize olanak sağladığından, iki derleyici modu arasında daha tutarlı bir deneyim sağlar. Bu bir işlev ifadesiyle bildirilmiş yöntemler için her zaman geçerli değildir. Örneğin, aşağıdaki kod, iki yöntemle Example adında bir sınıfı tanımlar: bir işlev ifadesiyle bildirilen methodExpression() yöntemi ve bir işlev deyimiyle çağrılan methodStatement() yöntemi. Katı modda, methodExpression() yöntemini çağırmak için nokta sözdizimini kullanamazsınız.

class Example
{
var methodExpression = function() {}
function methodStatement() {}
}

var myEx:Example = new Example();
myEx.methodExpression(); // error in strict mode; okay in standard mode
myEx.methodStatement(); // okay in strict and standard modes

İşlev deyimleri, çalışma zamanını veya dinamik davranışı esas alan programlamalar için daha uygun olarak değerlendirilir. Katı modu kullanmayı tercih ediyorsanız ancak diğer yandan bir işlev ifadesiyle bildirilmiş bir yöntemi çağırmanız gerekiyorsa, iki teknikten herhangi birini kullanabilirsiniz. İlk olarak, köşeli ayraçları ([]) nokta (.) operatörü yerine kullanarak yöntemi çağırabilirsiniz. Aşağıdaki yöntem çağrısı hem katı modda hem de standart modda başarılı olur:

myExample["methodLiteral"]();

İkinci olarak, sınıfın tamamını dinamik sınıf olarak bildirebilirsiniz. Bu, nokta operatörünü kullanarak yöntemi çağırmanıza olanak sağlasa da, bunun dezavantajı, söz konusu sınıfın tüm örnekleri için bazı katı mod işlevselliğinden taviz vermenizdir. Örneğin, bir dinamik sınıf örneğinde tanımsız bir özelliğe erişmeyi denerseniz, derleyici bir hata oluşturmaz.

İşlev ifadelerinin kullanışlı olduğu bazı koşullar vardır. İşlev ifadelerinin yaygın olarak kullanıldığı koşullardan biri, yalnızca bir defa kullanılan ve sonra atılan işlevlerdir. Daha az yaygın olarak da bir işlevin bir prototip özelliğine eklenmesi için kullanılabilir. Daha fazla bilgi için, bkz. Prototip nesnesi.

İşlev deyimleri ile işlev ifadeleri arasında, kullanılacak tekniği seçerken dikkate almanız gereken iki küçük fark vardır. Birinci fark, işlev ifadelerinin bellek yönetimi ve çöp toplamaya göre nesneler olarak bağımsız şekilde bulunmamasıdır. Başka bir deyişle, dizi öğesi veya nesne özelliği gibi başka bir nesneye bir işlev ifadesi atadığınızda, kodunuzda yalnızca o işlev ifadesine başvuru oluşturursunuz. İşlev ifadenizin eklendiği dizi veya nesne kapsam dışına çıkarsa ya da artık kullanılamazsa, artık işlev ifadesine erişemezsiniz. Dizi veya nesne silinirse, işlev ifadesinin kullandığı bellek, çöp toplama için uygun olur; başka bir deyişle, bellek başka amaçlar için geri istenmeye ve yeniden kullanılmaya uygun olur.

Aşağıdaki örnek, bir işlev ifadesi için, ifadenin atandığı özellik silindikten sonra işlevin artık kullanılamadığını gösterir. Test sınıfı dinamiktir, başka bir deyişle, bir işlev ifadesi içeren functionExp adında bir özellik ekleyebilirsiniz. functionExp() işlevi nokta operatörüyle çağrılabilir, ancak functionExp özelliği silindikten sonra artık işleve erişilemez.

dynamic class Test {}
var myTest:Test = new Test();

// function expression
myTest.functionExp = function () { trace("Function expression") };
myTest.functionExp(); // Function expression
delete myTest.functionExp;
myTest.functionExp(); // error

Diğer bir yandan, işlev ilk olarak bir işlev deyimiyle tanımlanırsa, kendi nesnesi olarak varolur ve siz işlevin eklendiği özelliği sildikten sonra da işlev varolmaya devam eder. delete operatörü yalnızca nesnelerin özelliklerinde çalışır, bu nedenle, stateFunc() işlevini silme çağrısı çalışmaz.

dynamic class Test {}
var myTest:Test = new Test();

// function statement
function stateFunc() { trace("Function statement") }
myTest.statement = stateFunc;
myTest.statement(); // Function statement
delete myTest.statement;
delete stateFunc; // no effect
stateFunc();// Function statement
myTest.statement(); // error

İşlev deyimleri ile işlev ifadeleri arasındaki ikinci bir fark, işlev deyimlerinin, işlev deyiminden önce görüntülenen deyimler de dahil olmak üzere, tanımlandıkları kapsamda varolmalarıdır. İşlev ifadeleri, bunun tersine yalnızca sonraki deyimler için tanımlanır. Örneğin, aşağıdaki kod tanımlanmadan önce scopeTest() işlevini başarıyla çağırırsa:

statementTest(); // statementTest

function statementTest():void
{
trace("statementTest");
}

İşlev ifadeleri, tanımlanmadan önce kullanılamaz, bu nedenle de aşağıdaki kod bir çalışma zamanı hatası oluşturur:

expressionTest(); // run-time error

var expressionTest:Function = function ()
{
trace("expressionTest");
}

İşlevlerden değerleri döndürme

İşlevinizden bir değer döndürmek için, ardından, döndürmek istediğiniz ifade veya değişmez değerin geldiği return deyimini kullanın. Örneğin, aşağıdaki kod, parametreyi temsil eden bir ifade döndürür:

function doubleNum(baseNum:int):int
{
return (baseNum * 2);
}

return deyiminin işlevi sonlandırdığına dikkat edin, böylece aşağıdaki gibi, return deyiminin aşağısındaki deyimler çalıştırılmaz:

function doubleNum(baseNum:int):int {
return (baseNum * 2);
trace("after return"); // This trace statement will not be executed.
}

Katı modda, bir döndürme türü belirtmeyi seçerseniz, ilgili türde bir değer döndürmeniz gerekir. Örneğin, aşağıdaki kod geçerli bir değer döndürmediğinden, katı modda bir hata oluşturur:

function doubleNum(baseNum:int):int
{
trace("after return");
}

Yuvalanmış işlevler

İşlevleri yuvalayabilirsiniz, başka bir deyişle, işlevler diğer işlevler içinde bildirilebilir. Yuvalanmış işlevin başvurusu harici koda iletilmediği sürece, yuvalanmış bir işlev yalnızca üst işlevi içinde kullanılabilir. Örneğin, aşağıdaki kod, getNameAndVersion() işlevi içinde iki yuvalanmış işlev bildirir:

function getNameAndVersion():String
{
function getVersion():String
{
return "10";
}
function getProductName():String
{
return "Flash Player";
}
return (getProductName() + " " + getVersion());
}
trace(getNameAndVersion()); // Flash Player 10

Flash As3 while, do while Döngüleri Kullanımları

0

Gönderen graficihad | Etiketler: as3 while kullanımı, flash as3 ders, flash do while kullanımı, flash while kullanımı | Posted on 7 Eylül 2009 Pazartesi

while

Flash while döngüsü, koşul true olduğu sürece yinelenen if deyimine benzer. Örneğin, aşağıdaki kod, for döngüsü örneğiyle aynı çıktıyı oluşturur:

var i:int = 0;
while (i < 5)
{
trace(i);
i++;
}

for döngüsü yerine while döngüsü kullanılmasının bir dezavantajı, sonsuz döngülerin while döngüleriyle daha kolay yazılmasıdır. Sayaç değişkenini artıran ifadeyi çıkarırsanız, for döngüsü örneği derleme yapmaz ancak bu adımı çıkarırsanız while döngüsü örneği derleme yapar. i değerini artıran ifade olmadan döngü sonsuz döngü olur.

do..while

Flash do..while döngüsü, kod bloğu çalıştırıldıktan sonra koşul denetlendiğinden, kod bloğunun en az bir defa çalıştırılmasını garantileyen bir while döngüsüdür. Aşağıdaki kod, koşul karşılanmasa da çıktı oluşturan basit bir do..while döngüsü örneğini göstermektedir:

var i:int = 5;
do
{
trace(i);
i++;
} while (i < 5);
// output: 5

Flash AS3 for each..in Dönügüsü Kullanımı

0

Gönderen graficihad | Etiketler: as2 each in döngüsü, As3 for each dögüsü, flash as3 ders, flash döngüler | Posted on

Flash for each..in döngüsü, bir koleksiyonun öğelerini yineler, bu öğeler bir XML veya XMLList nesnesindeki etiketler, nesne özellikleri tarafından tutulan değerler veya bir dizinin öğeleri olabilir. Örneğin, aşağıdaki alıntıda da gösterildiği gibi, genel bir nesnenin özelliklerini yinelemek için for each..in döngüsünü kullanabilirsiniz ancak for..in döngüsünden farklı olarak, for each..in döngüsündeki yineleyici değişken, özelliğin adı yerine özelliğin kendisi tarafından tutulan değeri içerir:

var myObj:Object = {x:20, y:30};
for each (var num in myObj)
{
trace(num);
}
// output:
// 20
// 30

Aşağıdaki örnekte gösterildiği gibi, bir XML veya XMLList nesnesini yineleyebilirsiniz:

var myXML:XML =
Jane
Susan
John
;

for each (var item in myXML.fname)
{
trace(item);
}
/* output
Jane
Susan
John
*/

Bu örnekte gösterildiği gibi, bir dizinin öğelerini de yineleyebilirsiniz:

var myArray:Array = ["one", "two", "three"];
for each (var item in myArray)
{
trace(item);
}
// output:
// one
// two
// three

Bir nesne mühürlenmiş bir sınıf örneğiyse, o nesnenin özelliklerini yineleyemezsiniz. Dinamik sınıf örnekleri için de, sınıf tanımının bölümü olarak tanımlanan özellikler olan sabit özellikleri yineleyemezsiniz.

Flash As3 for..in Döngüsü Kullanımı

0

Gönderen graficihad | Etiketler: as3 for..in döngüsü, flash as3 ders, flash for..in döngü | Posted on

flash for..in döngüsü, bir nesnenin özelliklerini veya dizideki öğeleri yineler. Örneğin, genel bir nesnenin özelliklerini yinelemek için bir for..in döngüsünü kullanabilirsiniz (nesne özellikleri belirli bir sırada tutulmaz, bu nedende özellikler rastgele sırada görüntüleniyor gibi gelebilir):

var myObj:Object = {x:20, y:30};
for (var i:String in myObj)
{
trace(i + ": " + myObj[i]);
}
// output:
// x: 20
// y: 30

Bir dizinin öğelerini de yineleyebilirsiniz:

var myArray:Array = ["one", "two", "three"];
for (var i:String in myArray)
{
trace(myArray[i]);
}
// output:
// one
// two
// three

Bir nesne, kullanıcı tanımlı sınıfın bir örneğiyse, sınıf dinamik bir sınıf olmadığı sürece nesnenin özelliklerini yineleyemezsiniz. Dinamik sınıf örnekleriyle de, yalnızca dinamik olarak eklenen özellikleri yineleyebilirsiniz.

Flash As3 FOR Döngüsü Kullanımı

0

Gönderen graficihad | Etiketler: as2 for döngüsü, as3 for, flash as3 ders, flash for döngüsü, flashta döngü | Posted on

Flash for döngüsü, belirli bir değer aralığı için bir değişkeni yinelemenize olanak sağlar. for deyiminde üç ifade sağlamanız gerekir: başlangıç değerine ayarlı bir değişken, döngünün ne zaman sona ereceğini belirleyen bir koşul deyimi ve her döngüyle değişkenin değerini değiştiren bir ifade. Örneğin, aşağıdaki kod beş defa döngü sağlar. i değişkeninin değeri 0'da başlar ve 4'te sona erer, çıktı da her biri kendi satırında olan 0 ile 4 arasındaki sayılar olur.

var i:int;
for (i = 0; i < 5; i++)
{
trace(i);
}

Flash As3 Döngüler

0

Gönderen graficihad | Etiketler: as2 döngü, as3 döngü, flash as3 ders, Flash As3 Döngüler, flash döngü | Posted on

Döngü deyimleri, bir değerler veya değişkenler dizisi kullanarak art arda belirli bir kod bloğu gerçekleştirmenize olanak sağlar. Adobe, kod bloğunu her zaman ayraç ({}) içine almanızı önerir. Kod bloğu yalnızca bir deyim içeriyorsa ayraçları çıkarabilseniz de, koşullar için geçerli olan aynı nedenden dolayı bu uygulama önerilmez: bu, daha sonra eklenen deyimlerin yanlışlıkla kod bloğundan hariç tutulması olasılığını artırır. Daha sonra, kod bloğuna dahil etmek istediğiniz bir deyimi eklerseniz ancak gerekli ayraçları koymayı unutursanız, deyim döngünün bir parçası olarak çalıştırılmaz.

Flash As3 Koşullar - if..else - if..else if - Switch

0

Gönderen graficihad | Etiketler: flash as3 ders, Flash As3 Koşullar, flash else if, flash if then else, flash koşul kullanımı, flash switch | Posted on

ActionScript 3.0, program akışını denetlemek için kullanabileceğiniz üç temel koşul deyimi sağlar.

if..else


if..else koşul deyimi, bir koşulu test etmenize ve bu koşul varsa bir kod bloğu çalıştırmanıza veya koşul yoksa alternatif bir kod bloğu çalıştırmanıza olanak sağlar. Örneğin, aşağıdaki kod, x değerinin 20 değerini aşıp aşmadığını test eder, aşıyorsa bir trace() işlevi oluşturur veya aşmıyorsa farklı bir trace() işlevi oluşturur:

if (x > 20)
{
trace("x is > 20");
}
else
{

trace("x is <= 20"); } Alternatif kod bloğu çalıştırmak istemiyorsanız, if deyimini else deyimi olmadan kullanabilirsiniz. if..else if if..else ifkoşul deyimini kullanarak, birden çok koşul için test yapabilirsiniz. Örneğin, aşağıdaki kod yalnızca x değerinin 20 değerini aşıp aşmadığını değil, aynı zamanda x değerinin negatif olup olmadığını da test eder: if (x > 20)
{
trace("x is > 20");
}

else if (x <> 0)
trace("x is positive");
else if (x < int =" 0;"> 0)
trace("x is positive");
positiveNums++;

trace(positiveNums); // 1

switch


Aynı koşul ifadesine bağlı birden çok çalıştırma yolunuz varsa switch deyimi kullanışlıdır. Bu, uzun if..else if deyimleri dizisine benzer şekilde işlevsellik sağlar ancak daha kolay okunabilir. switch deyimi, bir Boolean değerinin koşulunu test etmek yerine, bir ifade olarak değerlendirilir ve hangi kod bloğunun çalıştırılacağını belirlemek için sonucu kullanır. Kod blokları bir case deyimiyle başlar ve bir break deyimiyle sona erer Örneğin, aşağıdaki switch deyimi, Date.getDay() yönteminin döndürdüğü gün sayısını esas alarak haftanın gününü yazdırır:

var someDate:Date = new Date();
var dayNum:uint = someDate.getDay();
switch(dayNum)
{
case 0:
trace("Sunday");
break;
case 1:
trace("Monday");
break;
case 2:
trace("Tuesday");
break;
case 3:
trace("Wednesday");
break;
case 4:
trace("Thursday");
break;
case 5:
trace("Friday");
break;
case 6:
trace("Saturday");
break;
default:
trace("Out of range");
break;
}

Flash As3 Tür Dönüştürmeleri Nasıl Yapılır

0

Gönderen graficihad | Etiketler: as3 tür dönüştürme, as3 türler, flash as3 ders, flash tür dönüşümleri, tür dönüştürme işlemleri | Posted on

Bir değer farklı veri türünde bir değere dönüştürüldüğünde, tür dönüştürmesi gerçekleştirilmiş olur. Tür dönüştürmeleri örtük veya açıkça olabilir. Zorlama olarak da adlandırılan örtük dönüştürme, bazen Flash Player veya Adobe AIR uygulaması tarafından çalışma zamanında gerçekleştirilir. Örneğin, Boolean veri türündeki bir değişkene 2 değeri atanırsa, Flash Player veya Adobe AIR uygulaması, değeri değişkene atamadan önce 2 değerini true Boolean değerine dönüştürür. Çevrim olarak da adlandırılan açıkça dönüştürme, kodunuz derleyiciye bir veri türündeki değişkeni farklı bir veri türüne aitmiş gibi değerlendirmesini bildirdiğinde gerçekleşir. İlkel değerler bulunduğunda, çevrim gerçek anlamda değerleri bir veri türünden diğerine dönüştürür. Bir nesneyi farklı bir türe çevirmek için, nesne adını parantez içine alıp ve bunun başına yeni türün adını getirirsiniz. Örneğin, aşağıdaki kod bir Boolean değerini alıp tam sayıya çevirir:

var myBoolean:Boolean = true;
var myINT:int = int(myBoolean);
trace(myINT); // 1

Örtük dönüştürmeler

Örtük dönüştürmeler, birçok bağlamda çalışma zamanında gerçekleşir:

  • Atama deyimlerinde

  • Değerler işlev argümanları olarak iletildiğinde

  • Değerler işlevlerden döndürüldüğünde

  • Toplama (+) operatörü gibi belirli operatörleri kullanan ifadelerde

    Kullanıcı tanımlı türler için örtük dönüştürmeler, dönüştürülecek değer hedef sınıfın bir örneği veya hedef sınıftan türetilmiş bir sınıf olduğunda gerçekleşir. Örtük dönüştürme başarısız olursa bir hata oluşur. Örneğin, aşağıdaki kod başarılı bir örtük dönüştürme ve başarısız bir örtük dönüştürme içerir:

    class A {}
    class B extends A {}

    var objA:A = new A();
    var objB:B = new B();
    var arr:Array = new Array();

    objA = objB; // Conversion succeeds.
    objB = arr; // Conversion fails.

    İlkel türler için örtük dönüştürmeler, açıkça dönüştürme işlevleri tarafından çağrılan aynı dahili dönüştürme algoritmaları çağrılarak işlenir. İlerleyen bölümlerde bu ilkel tür dönüştürmeleri ayrıntılı şekilde ele alınmıştır.

Açıkça dönüştürmeler

Derleme zamanı hatası oluşturacak bir tür uyuşmazlığı istemediğiniz zamanlar olabileceğinden, katı modda derleme yaparken açıkça dönüştürmeleri veya çevrimi kullanmanız yararlı olur. Zorlamanın değerlerinizi çalışma zamanında doğru şekilde dönüştüreceğini bildiğinizde bu durum geçerli olabilir. Örneğin, bir formdan alınan verilerle çalıştığınızda, belirli dize değerlerini sayısal değerlere dönüştürmek için zorlamayı uygulamak isteyebilirsiniz. Aşağıdaki kod, standart modda doğru şekilde de çalışsa, bir derleme zamanı hatası oluşturur:

var quantityField:String = "3";
var quantity:int = quantityField; // compile time error in strict mode

Katı modu kullanmaya devam etmek ancak bir yandan da dizenin bir tam sayıya dönüştürülmesini istiyorsanız, aşağıdaki gibi açıkça dönüştürmeyi kullanabilirsiniz:

var quantityField:String = "3";
var quantity:int = int(quantityField); // Explicit conversion succeeds.

int, uint ve Number türlerine çevrim

Herhangi bir veri türünü üç sayı türünden birine çevirebilirsiniz: int, uint ve Number. Flash Player veya Adobe AIR uygulaması herhangi bir nedenle sayıyı dönüştüremezse, int ve uint veri türleri için 0 varsayılan değeri atanır ve Number veri türü için de NaN varsayılan değeri atanır. Bir Boolean değerini bir sayıya dönüştürürseniz, true değeri 1 ve false değeri de 0 olur.

var myBoolean:Boolean = true;
var myUINT:uint = uint(myBoolean);
var myINT:int = int(myBoolean);
var myNum:Number = Number(myBoolean);
trace(myUINT, myINT, myNum); // 1 1 1
myBoolean = false;
myUINT = uint(myBoolean);
myINT = int(myBoolean);
myNum = Number(myBoolean);
trace(myUINT, myINT, myNum); // 0 0 0

Yalnızca rakam içeren dize değerleri, sayı türlerinden birine başarıyla dönüştürülebilir. Sayı türleri ayrıca negatif sayı gibi görünen dizeleri veya onaltılık bir değeri (örneğin, 0x1A) temsil eden dizeleri dönüştürebilir. Dönüştürme işlemi, dize değerinin başındaki ve sonundaki boşluk karakterlerini yoksayar. Ayrıca Number() öğesini kullanarak kayan nokta sayısı gibi görünen dizeleri de çevirebilirsiniz. Ondalık işareti eklenmesi, uint() ve int() öğelerinin, ondalık işaretini ve bu işareti takip eden karakterleri kırparak bir tam sayı döndürmesine neden olur. Örneğin, aşağıdaki dize değerleri sayılara çevrilebilir:

trace(uint("5")); // 5
trace(uint("-5")); // 4294967291. It wraps around from MAX_VALUE
trace(uint(" 27 ")); // 27
trace(uint("3.7")); // 3
trace(int("3.7")); // 3
trace(int("0x1A")); // 26
trace(Number("3.7")); // 3.7

Sayısal olmayan karakterler içeren dize değerleri, int() veya uint() ile çevrildiğinde 0 değerini; Number() ile çevrildiğinde ise NaN değerini döndürür. Dönüştürme işlemi, baştaki ve sondaki boşlukları yoksayar ancak dizede iki sayıyı ayıran bir boşluk varsa, 0 veya NaN değerini döndürür.

trace(uint("5a")); // 0
trace(uint("ten")); // 0
trace(uint("17 63")); // 0

ActionScript 3.0'da, Number() işlevi artık sekizlik veya 8 tabanlı sayıları desteklemez. ActionScript 2.0 Number() işlevine başında sıfır bulunan bir dize sağlarsanız, sayı sekizlik bir sayı olarak yorumlanır ve ondalık eşdeğerine dönüştürülür. ActionScript 3.0'daki Number() işlevinde ise bu geçerli değildir, burada baştaki sıfır yoksayılır. Örneğin, aşağıdaki kod, farklı ActionScript sürümleri kullanılarak derlendiğinde farklı çıktı oluşturur:

trace(Number("044"));
// ActionScript 3.0 44
// ActionScript 2.0 36

Bir sayısal türdeki değer, farklı bir sayısal türdeki değişkene atandığında çevrim gerekmez. Katı modda da sayısal türler örtük olarak başka sayısal türlere dönüştürülür. Başka bir deyişle, bazı durumlarda bir tür aralığı aşıldığında beklenmeyen değerler ortaya çıkabilir. Aşağıdaki değerlerin bazıları beklenmeyen değerler oluştursa da, tümü katı modda derlenir:

var myUInt:uint = -3; // Assign int/Number value to uint variable
trace(myUInt); // 4294967293

var myNum:Number = sampleUINT; // Assign int/uint value to Number variable
trace(myNum) // 4294967293

var myInt:int = uint.MAX_VALUE + 1; // Assign Number value to uint variable
trace(myInt); // 0

myInt = int.MAX_VALUE + 1; // Assign uint/Number value to int variable
trace(myInt); // -2147483648

Aşağıdaki tabloda, başka veri türlerinden Number, int veya uint veri türüne çevrim sonuçları özetlenmektedir.

Veri türü veya değeri

Number, int veya uint türüne dönüştürme sonucu

Boolean

Değer true olursa, 1; aksi takdirde, 0.

Date

Date nesnesinin dahili temsili; bu, 1 Ocak 1970, gece yarısı evrensel saatinden bu yana geçen milisaniye sayısıdır.

null

0

Object

Örnek null olursa ve Number türüne dönüştürülürse, NaN; aksi takdirde, 0.

String

Flash Player veya Adobe AIR uygulaması dizeyi bir sayıya dönüştürebilirse bir sayı; aksi takdirde Number türüne dönüştürülürse, NaN veya int ya da uint türüne dönüştürülürse 0.

undefined

Number türüne dönüştürülürse, NaN; int veya uint türüne dönüştürülürse, 0.

Boolean değerine çevrim

Herhangi bir sayısal veri türünden (uint, int ve Number) Boolean değerine çevrim, sayısal değer 0 olursa false, aksi takdirde true değerini verir. Number veri türü için, NaN değeri de false değerini verir. Aşağıdaki örnek, -1, 0 ve 1 sayılarının çevrim sonuçlarını gösterir:

var myNum:Number;
for (myNum = -1; myNum<2; myNum++)
{
trace("Boolean(" + myNum +") is " + Boolean(myNum));
}

Örnekten elde edilen çıktı, üç sayıdan yalnızca 0 sayısının false değeri döndürdüğünü gösterir:

Boolean(-1) is true
Boolean(0) is false
Boolean(1) is true

Bir String değerinden Boolean değerine çevrim, dize null veya boş dize ("") olduğunda false değerini döndürür. Aksi takdirde, true değerini döndürür.

var str1:String; // Uninitialized string is null.
trace(Boolean(str1)); // false

var str2:String = ""; // empty string
trace(Boolean(str2)); // false

var str3:String = " "; // white space only
trace(Boolean(str3)); // true

Object sınıfı örneğinden Boolean değerine çevrim, örnek null ise false değerini; aksi takdirde true değerini döndürür:

var myObj:Object; // Uninitialized object is null.
trace(Boolean(myObj)); // false

myObj = new Object(); // instantiate
trace(Boolean(myObj)); // true

Boolean değişkenleri katı modda özel değerlendirmeye tabidir; katı modda çevrim yapmadan herhangi bir veri türündeki değerleri Boolean değişkenine atayabilirsiniz. Tüm veri türlerinden Boolean veri türüne örtük zorlama katı modda da gerçekleşir. Başka bir deyişle, diğer tüm veri türlerinin hemen hemen hepsinden farklı olarak, katı mod hatalarını önlemek için Boolean değerine çevrim gerekmez. Aşağıdaki örneklerin tümü katı modda derleme yapar ve çalışma zamanında beklendiği şekilde davranır:

var myObj:Object = new Object(); // instantiate
var bool:Boolean = myObj;
trace(bool); // true
bool = "random string";
trace(bool); // true
bool = new Array();
trace(bool); // true
bool = NaN;
trace(bool); // false

Aşağıdaki tabloda, başka veri türlerinden Boolean veri türüne çevrim sonuçları özetlenmektedir:

Veri türü veya değeri

Boolean değerine dönüştürme sonucu

String

Değer null veya boş dize ("") olursa false; aksi takdirde true.

null
false

Number, int veya uint

Değer NaN veya 0 olursa false; aksi takdirde true.

Object

Örnek null olursa false; aksi takdirde true.

String türüne çevrim

Herhangi bir sayısal veri türünden String veri türüne çevrim, sayının dize halinde temsilini döndürür. Bir Boolean değerinden String veri türüne çevrim, değer true olursa "true" dizesini ve değer false olursa "false" dizesini döndürür.

Bir Object sınıfı örneğinden String veri türüne çevrim, örnek null olursa "null" dizesini döndürür. Aksi takdirde, Object sınıfından String türüne çevrim, "[object Object]" dizesini döndürür.

Array sınıfı örneğinden String türüne çevrim, tüm dizi öğelerinin virgül sınırlı bir listesini içeren bir dize döndürür. Örneğin, aşağıdaki String veri türüne çevrim işlemi, dizideki üç öğeyi de içeren tek bir dize döndürür:

var myArray:Array = ["primary", "secondary", "tertiary"];
trace(String(myArray)); // primary,secondary,tertiary

Date sınıfı örneğinden String türüne çevrim, örneğin içerdiği tarihin dize halinde temsilini döndürür. Örneğin, aşağıdaki örnek, Date sınıfı örneğinin dize halinde temsilini döndürür (çıktıda Pasifik Yaz Saati sonucu gösterilmektedir):

var myDate:Date = new Date(2005,6,1);
trace(String(myDate)); // Fri Jul 1 00:00:00 GMT-0700 2005

Aşağıdaki tabloda, başka veri türlerinden String veri türüne çevrim sonuçları özetlenmektedir.

Veri türü veya değeri

Dizeye dönüştürme sonucu

Array

Tüm dizi öğelerini içeren bir dize.

Boolean

"true" veya "false"

Date

Date nesnesinin dize halinde temsili.

null
"null"

Number, int veya uint

Sayının dize halinde temsili.

Object

Örnek null olursa, "null"; aksi takdirde, "[object Object]".

Flash As3 Veri Türleri Nelerdir, Nasıl Kullanılırlar

0

Gönderen graficihad | Etiketler: as3 boolean veri türleri, as3 int veri türü, as3 null veri türü, as3 number veri türü, as3 string veri türü, as3 uint veri türü, as3 void veri türü, flash as3 ders | Posted on 3 Eylül 2009 Perşembe

İlkel veri türleri arasında Boolean, int, Null, Number, String, uint ve void yer alır. ActionScript çekirdek sınıfları ayrıca şu karmaşık veri türlerini de tanımlar: Object, Array, Date, Error, Function, RegExp, XML ve XMLList.

Boolean veri türü

Boolean veri türü iki değer içerir: true ve false. Boolean türündeki değişkenler için diğer değerler geçerli değildir. Bildirilmiş ancak başlatılmamış bir Boolean değişkeninin varsayılan değeri false olur.

int veri türü

int veri türü, dahili şekilde 32-bit tam sayı olarak saklanır ve

-2.147.483.648 (-231) ile 2.147.483.647 (231 - 1) (dahil) arasındaki tam sayılar kümesini kapsar. Önceki ActionScript sürümleri yalnızca hem tam sayı hem de kayan nokta sayıları için kullanılan Number veri türünü sunardı. ActionScript 3.0'da şimdi 32-bit işaretli ve işaretsiz tam sayılar için düşük düzeyli makine türlerine erişiminiz vardır. Değişkeniniz kayan nokta sayılarını kullanmayacaksa, Number veri türü yerine int veri türünün kullanılması hem daha hızlı hem de daha etkili olur.

Minimum ve maksimum int değerleri aralığı dışında kalan tam sayı değerleri için, pozitif ve negatif 9.007.199.254.740.992 arasındaki değerleri (53-bit tam sayı değerleri) işleyebilen Number veri türünü kullanın. int veri türündeki değişkenler için varsayılan değer 0'dır.

Null veri türü

Null veri türü yalnızca bir değer içerir, null. Bu, String veri türü için ve Object sınıfı da dahil olmak üzere karmaşık veri türlerini tanımlayan tüm sınıflar için varsayılan değerdir. Boolean, Number, int ve uint gibi diğer ilkel veri türlerinin hiçbiri null değerini içermez. null değerini, Boolean, Number, int veya uint türündeki değişkenlere atamaya çalıştığınızda, Flash Player ve Adobe AIR, null değerini uygun varsayılan değere dönüştürür. Bu veri türünü tür ek açıklaması olarak kullanamazsınız.

Number veri türü

ActionScript 3.0'da Number veri türü, tam sayıları, işaretsiz tam sayıları ve kayan nokta sayılarını temsil edebilir. Ancak, performansı en üst düzeye çıkarmak için, Number veri türünü yalnızca 32-bit int ve uint türlerinin saklayamayacağı kadar büyük tam sayı değerleri için ve kayan nokta sayıları için kullanmanız gerekir. Bir kayan nokta sayısını saklamak için, sayıya bir ondalık işareti dahil edin. Ondalık işaretini çıkarırsanız, sayı bir tam sayı olarak saklanır.

Number veri türü, İkili Kayan Nokta Aritmetiği için IEEE Standardı (IEEE-754) tarafından belirtilen 64-bit çift kesinlikli formatı kullanır. Bu standart, kayan nokta sayılarının mevcut 64 bit kullanılarak nasıl saklanacağını dikte eder Sayının pozitif veya negatif olduğunu belirlemek için tek bir bit kullanılır. Taban 2 olarak saklanan üs için on bir bit kullanılır. Kalan 52 bit, üssün belirttiği kuvvete yükseltilen sayı olan significand öğesini (mantissa olarak da adlandırılır) saklamak için kullanılır.

Number veri türü, bir üssü saklamak için bit'lerinden bir kısmını kullanarak, significand için tüm bit'leri kullandığında saklayabildiğinden çok daha büyük kayan nokta sayılarını saklayabilir. Örneğin, Number veri türü, significand öğesini saklamak için tüm 64 bit'i de kullansaydı, 265 - 1 büyüklüğünde bir sayıyı saklayabilirdi. Number veri türü bir üssü saklamak için 11 bit kullanarak, significand öğesini 21023 kuvvetine yükseltebilir.

Number türünün temsil edebildiği maksimum ve minimum değerler, Number sınıfının Number.MAX_VALUE ve Number.MIN_VALUE adındaki statik özelliklerinde saklanır.

Number.MAX_VALUE == 1.79769313486231e+308
Number.MIN_VALUE == 4.940656458412467e-324

Bu sayı aralığı büyük olsa da, bu geniş aralık kesinlik düzeyini azaltır. Number veri türü, significand öğesini saklamak için 52 bit kullanır ve bu da, kesin şekilde temsil edilecek 52 bit'ten fazlasını gerektiren sayıların (örn. 1/3 kesiri) yalnızca yaklaşık değerler olmasına neden olur. Uygulamanız için ondalık sayılarda mutlak kesinlik gerekiyorsa, ikili kayan nokta aritmetiğinin tersine ondalık kayan nokta aritmetiğini uygulayan bir yazılım kullanmanız gerekir.

Number veri türünde tam sayı değerlerini sakladığınızda, significand öğesinin yalnızca 52 bit'i kullanılır. Number veri türü, -9.007.199.254.740.992 (-253) ile 9.007.199.254.740.992 (253) arasındaki tam sayıları temsil etmek için bu 52 bit'i ve özel gizlenmiş bit'i kullanır.

Flash Player ve Adobe AIR, NaN değerini yalnızca Number türündeki değişkenler için varsayılan değer olarak değil, aynı zamanda bir sayı döndürmesi gerektiği halde sayı döndürmeyen herhangi bir işlemin sonucu olarak da kullanır. Örneğin, negatif bir sayının kare kökünü hesaplamayı denerseniz, sonuç NaN olur. Diğer özel Number değerleri arasında pozitif sonsuzluk ve negatif sonsuzluk yer alır.

Not: 0 değerine bölme işleminin sonucu, yalnızca bölen de 0 olduğunda NaN değerini verir. 0 değerine bölme işlemi, bölen pozitif olduğunda infinity değerini, bölen negatif olduğunda ise -infinity değerini verir.

String veri türü

String veri türü, 16-bit karakterlerin bir sırasını temsil eder. Dizeler, UTF-16 formatı kullanılarak dahili şekilde Unicode karakterleri olarak saklanır. Dizeler, Java programlama dilinde olduğu gibi, sabit değerlerdir. String değerindeki bir işlem, yeni bir dize örneği döndürür. String veri türüyle bildirilen bir değişkenin varsayılan değeri, null şeklindedir. null değeri de boş dize ("") gibi herhangi bir karakter olmadığını temsil etse de, bunun ikisi aynı değildir.

uint veri türü

uint veri türü, dahili şekilde 32-bit işaretsiz tam sayı olarak saklanır ve 0 ile 4.294.967.295 (232 - 1) arasındaki tam sayıların kümesini kapsar. Negatif olmayan tam sayıları çağıran özel koşullar için uint veri türünü kullanın. Örneğin, int veri türü, renk değerlerinin işlenmesi için uygun olmayan dahili bir işaret bit'i içerdiğinden, piksel rengi değerlerini temsil etmek için uint veri türünü kullanmanız gerekir. Maksimum uint değerinden büyük tam sayı değerleri için, 53-bit tam sayı değerlerini işleyebilen Number veri türünü kullanın. uint veri türündeki değişkenler için varsayılan değer 0'dır.

void veri türü

Void veri türü yalnızca bir değer içerir, undefined. Önceki ActionScript sürümlerinde undefined, Object sınıfının örnekleri için varsayılan değerdi. ActionScript 3.0'da, Object örneklerinin varsayılan değeri null şeklindedir. Object sınıfının bir örneğine undefined değerini atamaya çalışırsanız, Flash Player veya Adobe AIR, bu değeri null değerine dönüştürür. Türlenmemiş değişkenlere yalnızca undefined değerini atayabilirsiniz. Türlenmemiş değişkenler, tür ek açıklaması içermeyen veya tür ek açıklaması için yıldız (*) sembolünü kullanan değişkenlerdir. Döndürme tür ek açıklaması olarak yalnızca void öğesini kullanabilirsiniz.

Object veri türü

Object veri türü, Object sınıfı tarafından tanımlanır. Object sınıfı, ActionScript'teki tüm sınıf tanımlamaları için temel sınıf görevi görür. Object veri türünün ActionScript 3.0 sürümü, önceki sürümlerden üç şekilde farklılık gösterir. İlk olarak, Object veri türü artık tür ek açıklaması içermeyen değişkenlere atanan varsayılan veri türü değildir. İkinci olarak, Object veri türü, Object örneklerinin varsayılan değeri olarak kullanılan undefined değerini artık içermez. Üçüncü olarak, ActionScript 3.0'da, Object sınıfının örnekleri için varsayılan değer null şeklindedir.

Önceki ActionScript sürümlerinde, Object veri türüne tür ek açıklaması içermeyen bir değişken otomatik olarak atanırdı. Artık türlenmemiş değişken kavramını içeren ActionScript 3.0'da bu geçerli değildir. Tür ek açıklaması içermeyen değişkenler artık türlenmemiş olarak değerlendirilir. Kod okuyucularınıza, amacınızın bir değişkeni türlenmemiş şekilde bırakmak olduğunu açıkça belirtmek isterseniz, tür ek açıklamasının çıkarılmasına eşdeğer şekilde, tür ek açıklaması için yeni yıldız (*) sembolünü kullanabilirsiniz. Aşağıdaki örnekte, her ikisi de x türlenmemiş değişkenini bildiren iki eşdeğer deyim gösterilmektedir:

var x
var x:*

Yalnızca türlenmemiş değişkenler undefined değerini barındırabilir. Bir veri türüne sahip değişkene undefined değerini atamaya çalışırsanız, Flash Player veya Adobe AIR uygulaması, undefined değerini o veri türünün varsayılan değerine dönüştürür. Object veri türünün örnekleri için varsayılan değer null olup bu, bir Object örneğine undefined değerini atamaya çalışırsanız Flash Player veya Adobe AIR uygulamasının undefined değerini null değerine dönüştüreceği anlamına gelir.

Flash AS3 Dinamik Sınıflar Özellikleri ve Yöntemleri

0

Gönderen graficihad | Etiketler: as2 de sınıf yapısı, as2 dinamik, flash as3 ders, flash as3 dinamik, flash sınıf özellikleri, flash sınıflar | Posted on

Dinamik sınıf, özellikler ve yöntemler eklenerek veya değiştirilerek çalışma zamanında değiştirilebilen bir nesneyi tanımlar. String sınıfı gibi, dinamik olmayan bir sınıf mühürlenmiş bir sınıftır. Mühürlenmiş bir sınıfa çalışma zamanında özellikler veya yöntemler ekleyemezsiniz.

Bir sınıfı bildirirken, dynamic niteliğini kullanarak dinamik sınıflar oluşturursunuz. Örneğin, aşağıdaki kod, Protean adında dinamik bir sınıf oluşturur:

dynamic class Protean
{
private var privateGreeting:String = "hi";
public var publicGreeting:String = "hello";
function Protean()
{
trace("Protean instance created");
}
}

Daha sonra Protean sınıfının bir örneğini başlatırsanız, sınıf tanımının dışında buna özellikler veya yöntemler ekleyebilirsiniz. Örneğin, aşağıdaki kod, Protean sınıfının bir örneğini oluşturur ve örneğe aString adında bir özellik ve aNumber adında bir özellik ekler:

var myProtean:Protean = new Protean();
myProtean.aString = "testing";
myProtean.aNumber = 3;
trace(myProtean.aString, myProtean.aNumber); // testing 3

Dinamik sınıf örneğine eklediğiniz özellikler çalışma zamanı varlıklardır, bu nedenle tüm denetlemeleri çalışma zamanında yapılır. Bu şekilde eklediğiniz bir özelliğe tür ek açıklaması ekleyemezsiniz.

Ayrıca bir işlev tanımlayıp bu işlevi myProtean örneğinin bir özelliğine ekleyerek myProtean örneğine bir yöntem ekleyebilirsiniz. Aşağıdaki kod, izleme deyimini traceProtean() adındaki bir yönteme taşır:

var myProtean:Protean = new Protean();
myProtean.aString = "testing";
myProtean.aNumber = 3;
myProtean.traceProtean = function ()
{
trace(this.aString, this.aNumber);
};
myProtean.traceProtean(); // testing 3

Ancak bu şekilde oluşturulan yöntemlerin, Protean sınıfının özel özelliklerine veya yöntemlerine erişimi yoktur. Ayrıca, Protean sınıfının genel özelliklerine veya yöntemlerine başvuruların da this anahtar sözcüğüyle ya da sınıf adıyla nitelenmesi gerekir. Aşağıdaki örnek, Protean sınıfının özel ve genel değişkenlerine erişmeye çalışan traceProtean() yöntemini gösterir.

myProtean.traceProtean = function ()
{
trace(myProtean.privateGreeting); // undefined
trace(myProtean.publicGreeting); // hello
};
myProtean.traceProtean();

Flash AS3 Veri türleri

0

Gönderen graficihad | Etiketler: as3 veri, as3 veri türleri, flash as3 ders, flash ta veri kullanımı, flash veri, flash veri türleri | Posted on

Veri türü, bir değerler kümesini tanımlar. Örneğin, Boolean veri türü tam olarak iki değerden oluşan bir kümedir: true ve false. ActionScript 3.0, Boolean veri türüne ek olarak, String, Number ve Array gibi birkaç tane daha yaygın kullanılan veri türünü tanımlar. Özel bir değer kümesini tanımlamak için sınıfları veya arabirimleri kullanarak kendi veri türlerinizi tanımlayabilirsiniz. İlkel veya karmaşık olsun, ActionScript 3.0'daki tüm değerler, nesnedir.

İlkel değer, şu veri türlerinden birine ait olan bir değerdir: Boolean, int, Number, String ve uint. ActionScript, bellek ve hız eniyileştirmesini olanaklı kılacak şekilde ilkel değerleri sakladığından, ilkel değerlerle çalışılması genellikle karmaşık değerlerle çalışılmasından daha hızlıdır.

Not: ActionScript, teknik ayrıntılara ilgi duyan okuyucular için ilkel değerleri sabit nesneler şeklinde dahili olarak saklar. Bunların sabit nesneler olarak saklanması, başvuruya göre iletmenin değere göre iletme kadar etkili olduğu anlamına gelir. Başvurular genellikle değerlerin kendisinden çok daha küçük olduğundan bu, bellek kullanımını azaltıp çalıştırma hızını da artırır.

Karmaşık değer, ilkel olmayan bir değerdir. Karmaşık değerler kümesini tanımlayan veri türleri arasında, Array, Date, Error, Function, RegExp, XML ve XMLList yer alır.

Çoğu programlama dili, ilkel değerler ile bunların sarıcı değerleri arasında ayrım yapar. Örneğin, Java, bir int ilkel değerine ve bunu saran java.lang.Integer sınıfına sahiptir. Java ilkel değerleri nesne değildir ancak bunların sarıcıları nesnedir ve bu da bazı işlemler için ilkel değerleri, bazı işlemler için de sarıcı nesneleri daha uygun hale getirir. ActionScript 3.0'da ilkel değerler ve bunların sarıcı nesneleri pratik amaçlar için birbirinden ayırt edilemez. İlkel değerler de dahil olmak üzere tüm değerler nesnedir. Flash Player ve Adobe AIR, bu ilkel türleri, nesne gibi davranan ancak nesne oluşturulmasıyla ilişkilendirilmiş normal yükü gerektirmeyen özel durumlar olarak değerlendirir. Başka bir deyişle, aşağıdaki iki kod satırı eşdeğerdir:

var someInt:int = 3;
var someInt:int = new int(3);

Yukarıda listelenen tüm ilkel ve karmaşık veri türleri, ActionScript 3.0 çekirdek sınıfları tarafından tanımlanır. Çekirdek sınıflar, new operatörü yerine değişmez değerler kullanarak nesneler oluşturmanıza olanak sağlar. Örneğin, aşağıdaki gibi, değişmez bir değer veya Array sınıfı yapıcısını kullanarak bir dizi oluşturabilirsiniz:

var someArray:Array = [1, 2, 3]; // literal value
var someArray:Array = new Array(1,2,3); // Array constructor

Flash As3 te Değişkenler Nasıl Kullanılır ?

0

Gönderen graficihad | Etiketler: as3 değişken kullanımı, değişken yapısı, Flash As3 değişken, flash as3 ders, flash değişken | Posted on

Flash As3 Değişkenler, programınızda kullandığınız değerleri saklamanıza olanak sağlar. Bir değişken bildirmek için, değişken adıyla var deyimini kullanmanız gerekir. ActionScript 2.0'da, yalnızca tür ek açıklamalarını kullanıyorsanız var deyiminin kullanılması gerekir. ActionScript 3.0'da ise var deyiminin kullanılması her zaman gerekir. Örneğin, aşağıdaki ActionScript satırı, i adında bir değişken bildirir:

var i;

Bir değişkeni bildirirken var deyimini atarsanız, katı modda bir derleyici hatası ve standart modda bir çalışma zamanı hatası alırsınız. Örneğin, i değişkeni önceden tanımlanmadıysa, aşağıdaki kod satırı bir hataya yol açar:

i; // error if i was not previously defined

Bir değişkeni bir veri türüyle ilişkilendirmek için, değişkeni bildirdiğinizde bunu yapmanız gerekir. Değişken türü belirlenmeden bir değişkenin belirtilmesi geçerlidir ancak bu, katı modda bir derleyici uyarısına yol açar. Değişkenin adının sonuna iki nokta (:) ve ardından da değişkenin türünü ekleyerek bir değişken türü belirlersiniz. Örneğin, aşağıdaki kod, int türünde bir i değişkenini bildirir:

var i:int;

Atama operatörünü (=) kullanarak bir değişkene bir değer atayabilirsiniz. Örneğin, aşağıdaki kod bir i değişkenini bildirir ve bu değişkene 20 değerini atar:

var i:int;
i = 20;

Aşağıdaki örnekte olduğu gibi, değişkeni bildirdiğiniz anda değişkene bir değer atamak daha kullanışlı olabilir:

var i:int = 20;

Bildirildiği anda bir değişkene değer atama tekniği yalnızca tam sayı ve dizeler gibi ilkel değerler atanırken değil, bir dizi oluşturulurken veya bir sınıfın örneği başlatılırken de yaygın olarak kullanılır. Aşağıdaki örnek, bir kod satırı kullanılarak bildirilen ve değer atanan bir diziyi gösterir.

var numArray:Array = ["zero", "one", "two"];

new operatörünü kullanarak bir sınıfın örneğini oluşturabilirsiniz. Aşağıdaki örnek, CustomClass adında bir sınıfın örneğini oluşturur ve yeni oluşturulan sınıf örneği başvurusunu customItem adındaki değişkene atar:

var customItem:CustomClass = new CustomClass();

Bildirilecek birden çok değişkeniniz varsa, değişkenleri ayırmak için virgül operatörünü (,) kullanarak bunların tümünü tek bir kod satırında bildirebilirsiniz. Örneğin, aşağıdaki kod, tek bir kod satırında üç değişken bildirir:

var a:int, b:int, c:int;

Ayrıca aynı kod satırındaki değişkenlerin her birine değer atayabilirsiniz. Örneğin, aşağıdaki kod üç değişken (a, b ve c) bildirir ve her birine bir değer atar:

var a:int = 10, b:int = 20, c:int = 30;

Değişken bildirimlerini tek bir deyimde gruplandırmak için virgül operatörünü kullanabilseniz de, bunun yapılması kodunuzun okunabilirliğini azaltabilir.

Değişken kapsamını anlama

Bir değişkenin kapsamı, sözlü bir başvuruyla değişkene erişilebilen kod alanıdır. Genel değişken, kodunuzun tüm alanlarında tanımlı değişkenken, yerel değişken ise kodunuzun yalnızca bir bölümünde tanımlı değişkendir. ActionScript 3.0'da değişkenlere her zaman bildirildikleri işlev veya sınıf kapsamı atanır. Genel bir değişken, herhangi bir işlev veya sınıf tanımı dışında tanımladığınız bir değişkendir. Örneğin, aşağıdaki kod, herhangi bir işlevin dışında genel işlevi bildirerek strGlobal genel işlevini oluşturur. Bu örnek, genel bir değişkenin, işlev tanımının içinde ve dışında kullanılabilir olduğunu gösterir.

var strGlobal:String = "Global";
function scopeTest()
{
trace(strGlobal); // Global
}
scopeTest();
trace(strGlobal); // Global

Bir işlev tanımı içindeki değişkeni bildirerek yerel bir değişkeni bildirmiş olursunuz. Yerel değişkeni tanımlayabileceğiniz en küçük kod alanı, işlev tanımıdır. Bir işlev içinde bildirilen yerel değişken yalnızca o işlev içinde varolur. Örneğin, localScope() adındaki bir işlevin içinde str2 adında bir değişkeni bildirirseniz, bu değişken söz konusu işlevin dışında kullanılamaz.

function localScope()
{
var strLocal:String = "local";
}
localScope();
trace(strLocal); // error because strLocal is not defined globally

Yerel değişkeniniz için kullandığınız değişken adı önceden genel değişken olarak bildirilmişse, yerel değişken kapsamdayken, yerel tanım genel tanımı gizler (veya gölgeler). Genel değişken, işlev dışında varolmaya devam eder. Örneğin, aşağıdaki kod, str1 adında genel bir dize değişkeni oluşturur ve sonra scopeTest() işlevinin içinde aynı adda yerel bir değişken oluşturur. İşlevin içindeki trace deyimi, değişkenin yerel değerini verirken, işlevin dışındaki trace deyimi de değişkenin genel değerini verir.

var str1:String = "Global";
function scopeTest ()
{
var str1:String = "Local";
trace(str1); // Local
}
scopeTest();
trace(str1); // Global

ActionScript değişkenleri, C++ ve Java uygulamalarındaki değişkenlerden farklı olarak, blok düzeyi kapsamına sahip değildir. Kod bloğu, açma küme ayracı ( { ) ile kapatma küme ayracı( } ) arasındaki herhangi bir deyim grubudur. C++ ve Java gibi bazı programlama dillerinde, kod bloğu içinde bildirilen değişkenler o kod bloğunun dışında kullanılamaz. Bu kapsam sınırlamasına blok düzeyi kapsamı denir ve bu kapsam sınırlaması ActionScript'te bulunmaz. Bir kod bloğu içinde bir değişken bildirirseniz, bu değişken yalnızca o kod bloğunda değil, kod bloğunun ait olduğu diğer işlev parçalarında da kullanılabilir. Örneğin, aşağıdaki işlev, çeşitli blok kapsamlarında tanımlanmış değişkenleri içerir. Tüm değişkenler, işlev boyunca kullanılabilir.

function blockTest (testArray:Array)
{
var numElements:int = testArray.length;
if (numElements > 0)
{
var elemStr:String = "Element #";
for (var i:int = 0; i < string =" i"> 0
}

blockTest(["Earth", "Moon", "Sun"]);

Blok düzeyi kapsamı olmamasının işaret ettiği ilginç bir nokta, işlev sona ermeden değişken bildirildiği sürece, bir değişken bildirilmeden o değişkene okuma ve yazma işlemi yapabilmenizdir. Bunun nedeni, derleyicinin tüm değişken bildirimlerini işlevin en üstüne taşıdığını belirten, kaldırma adındaki bir tekniktir. Örneğin, num değişkeninin ilk trace() işlevi, num değişkeni bildirilmeden önce olsa da, aşağıdaki kod derleme yapar:

trace(num); // NaN
var num:Number = 10;
trace(num); // 10

Ancak derleyici, atama deyimlerini kaldırmaz. Bu da, num değişkeninin ilk trace() işlevinin neden Number veri türü için varsayılan değişken değeri olan NaN (sayı değil) sonucunu verdiğini açıklar. Başka bir deyişle, aşağıdaki örnekte gösterildiği gibi, değişkenler bildirilmeden değişkenlere değer atayabilirsiniz:

num = 5;
trace(num); // 5
var num:Number = 10;
trace(num); // 10

Varsayılan değerler

Varsayılan değer, siz değerini ayarlamadan önce bir değişkenin içerdiği değerdir. Bir değişkenin ilk defa değerini ayarladığınızda o değişkeni başlatırsınız. Bir değişkeni bildirir ancak değişkenin değerini ayarlamazsanız, o değişken başlatılmamış olur. Başlatılmamış değişkenin değeri, veri türüne bağlıdır. Aşağıdaki tabloda, veri türüne göre organize edilmiş şekilde değişkenlerin varsayılan değerleri açıklanmaktadır:

Veri türü

Varsayılan değer

Boolean

false

int

0

Number

NaN

Object

null

String

null

uint

0

Bildirilmemiş (tür ek açıklamasına eşit *)

undefined

Kullanıcı tanımlı sınıflar da dahil olmak üzere diğer tüm sınıflar.

null

Number türündeki değişkenler için varsayılan değer NaN (sayı değil) olup bu değer, bir değerin sayıyı temsil etmediğini belirtmek için IEEE-754 standardı tarafından tanımlanmış özel bir değerdir.

Bir değişkeni bildirir ancak değişkenin veri türünü bildirmezseniz, gerçekten değişkenin türlenmemiş olduğunu belirten varsayılan veri türü * uygulanır. Türlenmemiş bir değişkeni bir değerle de başlatmazsanız, değişkenin varsayılan değeri undefined olur.

Boolean, Number, int ve uint dışındaki veri türleri için, başlatılmamış bir değişkenin varsayılan değeri null olur. Bu, ActionScript 3.0 tarafından tanımlanmış tüm sınıfların yanı sıra sizin oluşturduğunuz özel sınıflar için de geçerlidir.

null değeri, Boolean, Number, int veya uint türündeki değişkenler için geçerli bir değer değildir. Bu tür bir değişkene null değeri atamayı denerseniz, değer o veri türünün varsayılan değerine dönüştürülür. Object türündeki değişkenler için bir null değeri atayabilirsiniz. Object türündeki bir değişkene undefined değerini atamayı denerseniz, değer null değerine dönüştürülür.

Number türündeki değişkenler için, değişken bir sayı olmadığında true, aksi takdirde false Boolean değerini döndüren isNaN() adında özel bir üst düzey işlevi vardır.

Flash As3 te Akış denetimi

0

Gönderen graficihad | Etiketler: Flash akış, flash akış denetimi, flash as3 ders, flash denetim | Posted on 2 Eylül 2009 Çarşamba

Bir programda birçok defa belirli eylemleri yinelemek, yalnızca belirli eylemleri gerçekleştirirken diğer eylemleri gerçekleştirmemek, belirli koşullara bağlı olarak alternatif eylemleri uygulamak, vb. istersiniz. Akış denetimi, hangi eylemlerin gerçekleştirileceğiyle ilgili denetimdir. ActionScript'te birçok kullanılabilir akış denetimi öğesi türü vardır.

  • İşlevler: İşlevler kısayollara benzer—tek bir ad altında bir eylemler dizisini gruplandırmanın bir yolunu sağlar ve hesaplamaları gerçekleştirmek için kullanılabilir. İşlevler özellikle olayları işlemede önemlidir ancak talimatlar dizisini gruplandırmak için genel bir araç olarak da kullanılabilir. İşlevlerle ilgili daha fazla bilgi için, bkz. İşlevler.

  • Döngüler: Döngü yapıları, bilgisayarın belirli sayıda veya bazı koşullar değişinceye kadar gerçekleştireceği bir talimatlar dizisi belirlemenize olanak sağlar. Döngüler genellikle bilgisayar döngüde her çalıştığında değeri değişen bir değişkeni kullanarak birçok ilgili öğeyi işlemek için kullanılır. Döngülerle ilgili daha fazla bilgi için, bkz. Döngü.

  • Koşul deyimleri: Koşul deyimleri, belirli koşullarda gerçekleştirilen belirli talimatları belirlemenin veya farklı koşullar için alternatif talimatlar dizisi sağlamanın bir yolunu sağlar. En yaygın koşul deyimi türü if deyimidir. if deyimi, parantezleri içindeki bir değeri veya ifadeyi kontrol eder. Değer true olursa, küme ayraçları içindeki kod satırları gerçekleştirilir; aksi takdirde bunlar yoksayılır. Örneğin:

    if (age <>

    if deyiminin eşi olan else deyimi, koşul true olmadığında gerçekleştirilecek alternatif talimatları belirlemenize olanak sağlar:

    if (username == "admin")
    {
    // do some administrator-only things, like showing extra options
    }
    else
    {
    // do some non-administrator things
    }

Flash As3 te Akış Denetimi

0

Gönderen graficihad | Etiketler: Flash akış, flash akış denetimi, flash as3 ders, flash denetim | Posted on

Bir programda birçok defa belirli eylemleri yinelemek, yalnızca belirli eylemleri gerçekleştirirken diğer eylemleri gerçekleştirmemek, belirli koşullara bağlı olarak alternatif eylemleri uygulamak, vb. istersiniz. Akış denetimi, hangi eylemlerin gerçekleştirileceğiyle ilgili denetimdir. ActionScript'te birçok kullanılabilir akış denetimi öğesi türü vardır.

  • İşlevler: İşlevler kısayollara benzer—tek bir ad altında bir eylemler dizisini gruplandırmanın bir yolunu sağlar ve hesaplamaları gerçekleştirmek için kullanılabilir. İşlevler özellikle olayları işlemede önemlidir ancak talimatlar dizisini gruplandırmak için genel bir araç olarak da kullanılabilir.

  • Döngüler: Döngü yapıları, bilgisayarın belirli sayıda veya bazı koşullar değişinceye kadar gerçekleştireceği bir talimatlar dizisi belirlemenize olanak sağlar. Döngüler genellikle bilgisayar döngüde her çalıştığında değeri değişen bir değişkeni kullanarak birçok ilgili öğeyi işlemek için kullanılır.

  • Koşul deyimleri: Koşul deyimleri, belirli koşullarda gerçekleştirilen belirli talimatları belirlemenin veya farklı koşullar için alternatif talimatlar dizisi sağlamanın bir yolunu sağlar. En yaygın koşul deyimi türü if deyimidir. if deyimi, parantezleri içindeki bir değeri veya ifadeyi kontrol eder. Değer true olursa, küme ayraçları içindeki kod satırları gerçekleştirilir; aksi takdirde bunlar yoksayılır. Örneğin:

    if (age < 20)
    {
    // show special teenager-targeted content
    }

    if deyiminin eşi olan else deyimi, koşul true olmadığında gerçekleştirilecek alternatif talimatları belirlemenize olanak sağlar:

    if (username == "admin")
    {
    // do some administrator-only things, like showing extra options
    }
    else
    {
    // do some non-administrator things
    }

Flash As3 te Yorumlar

0

Gönderen graficihad | Etiketler: as2 yorumlar, as3 yorum nasıl kullanılır, as3 yorumlar, flash as3 ders, Flash yorumlar | Posted on

ActionScript yazarken belki de belirli kod satırlarının nasıl çalıştığını ve neden bu seçimi yaptığınızı açıklayacak şekilde genellikle kendinize not bırakmak istersiniz. Kod yorumları, bilgisayarınızın kodunuzda yoksayması gereken metinleri yazmak için kullanabileceğiniz bir araçtır. ActionScript, iki tür yorum içerir:

  • Tek satırlı yorum: Tek satırlı yorum, bir satırın herhangi bir yerine iki eğik çizgi yerleştirilerek belirlenir. Eğik çizgilerden satırın sonuna kadar olan her şey bilgisayar tarafından yoksayılır:

    // This is a comment; it's ignored by the computer.
    var age:Number = 10; // Set the age to 10 by default.
  • Çok satırlı yorum: Çok satırlı yorum, bir yorum başlatma işaretçisini (/*), ardından yorum içeriğini ve sonra da yorum bitirme işaretçisini (*/) içerir. Yorumun kaç satır genişlediğine bakılmaksızın, başlatma ve bitirme işaretçileri arasındaki her şey bilgisayar tarafından yoksayılır:

    /*
    This might be a really long description, perhaps describing what
    a particular function is used for or explaining a section of code.

    In any case, these lines are all ignored by the computer.
    */

Yorumların başka bir yaygın kullanım amacı da kodun bir veya birkaç satırını geçici olarak "devre dışı bırakmaktır"—örneğin, bir şeyi yapmanın başka bir yolunu deniyorsanız veya belirli bir ActionScript kodunun neden beklediğiniz şekilde çalışmadığını anlamaya çalışıyorsanız.

Flash As3 te Operatörler Nasıl Kullanılır ?

1

Gönderen graficihad | Etiketler: as3 operator kullanımı, flash as3 ders, flash operatorler, flash operatör sistemi | Posted on

Flash Operatörler, hesaplamaları gerçekleştirmek için kullanılan özel sembollerdir (veya rastgele sözcüklerdir). Bunlar daha çok matematik işlemleri için kullanılır ve değerleri birbiriyle karşılaştırırken de kullanılabilir. Genel bir kural olarak, bir operatör bir veya birkaç değer kullanır ve tek bir sonuç "üretir". Örneğin:

  • Toplama operatörü (+), iki değerini birbirine ekleyerek tek bir sayı ortaya çıkarır:

    var sum:Number = 23 + 32;
  • Çarpma operatörü (*), bir değeri diğeriyle çarparak tek bir sayı ortaya çıkarır:

    var energy:Number = mass * speedOfLight * speedOfLight;
  • Eşitlik operatörü (==), iki değerin eşit olup olmadığını görmek için iki değeri karşılaştırarak tek bir doğru veya yanlış (Boolean) değerini ortaya çıkarır:

    if (dayOfWeek == "Wednesday")
    {
    takeOutTrash();
    }

    Burada gösterildiği gibi, eşitlik operatörü ve diğer "karşılaştırma" operatörleri, belirli talimatların uygulanıp uygulanmayacağını belirlemek için en yayın şekilde if deyimiyle birlikte kullanılır.

Flash As3 te Ad Alanları

0

Gönderen graficihad | Etiketler: flash ad alanları tanımla, flash ad başvurma, flash ad kullanımı, flash ad kullanma, flash ad uygulama, flash adlar, Flash As3 te Ad Alanları | Posted on 1 Eylül 2009 Salı

Flash 'ta Ad alanları, oluşturduğunuz özellik ve yöntemlerin görünürlüğü üzerinde denetim elde etmenizi sağlar. public, private, protected ve internal erişim denetimi belirticilerini, yerleşik ad alanları olarak düşünün. Bu önceden tanımlı erişim denetimi belirticileri ihtiyaçlarınıza uymuyorsa, kendi ad alanlarınızı oluşturabilirsiniz.

XML ad alanları hakkında bilginiz varsa, ActionScript uygulamasının sözdizimi ve ayrıntıları XML'dekinden biraz daha farklı olsa da, burada ele alınan konuların çoğu size yabancı gelmeyecektir. Daha önce hiç ad alanlarıyla çalışmadıysanız, kavramın kendisi oldukça anlaşılırdır ancak uygulama için öğrenmeniz gereken belirli terminolojiler vardır.

Ad alanlarının nasıl çalıştığını anlamak için, özellik veya yöntem adının her zaman tanımlayıcı ve ad alanı olmak üzere iki bölüm içerdiğinin bilinmesi yardımcı olacaktır. Tanımlayıcı, genellikle ad olarak düşündüğünüz şeydir. Örneğin, aşağıdaki sınıf tanımında bulunan tanımlayıcılar

sampleGreeting ve sampleFunction() şeklindedir:

class SampleCode
{
var sampleGreeting:String;
function sampleFunction () {
trace(sampleGreeting + " from sampleFunction()");
}
}
 

Tanımların önünde bir ad alanı niteliği olmadığında, tanımların adları varsayılan olarak internal ad alanı şeklinde nitelendirilir, başka bir deyişle bunlar yalnızca aynı paketteki çağıranlara görünür. Derleyici katı moda ayarlanırsa, derleyici, ad alanı niteliği olmayan tüm tanımlayıcılara internal ad alanının uygulandığına dair bir uyarı yayınlar. Bir tanımlayıcının her yerde kullanılabilir olmasını sağlamak için, tanımlayıcı adının başına özel olarak public niteliğini getirmeniz gerekir. Önceki örnek kodda, hem sampleGreeting hem de sampleFunction(), internal ad alanı değerine sahiptir.

Ad alanları kullanılırken izlenmesi gereken üç temel adım vardır. İlk olarak, namespace anahtar sözcüğünü kullanarak ad alanını tanımlamanız gerekir. Örneğin, aşağıdaki kod version1 ad alanını tanımlar:

namespace version1;

İkinci olarak, ad alanınızı bir özellik veya yöntem bildiriminde erişim denetimi belirticisinin yerine kullanarak uygularsınız. Aşağıdaki örnek, version1 ad alanına myFunction() adında bir işlev yerleştirir:

version1 function myFunction() {}

Üçüncü olarak, ad alanını uyguladıktan sonra, use direktifiyle veya bir tanımlayıcının adını bir ad alanıyla niteleyerek bu ad alanına başvurabilirsiniz. Aşağıdaki örnek, use direktifi yoluyla myFunction() işlevine başvurur:

use namespace version1;
myFunction();

Aşağıdaki örnekte gösterildiği gibi, myFunction() işlevine başvurmak için nitelendirilmiş bir ad da kullanabilirsiniz:

version1::myFunction();

Ad alanlarını tanımlama

Ad alanları, bazen ad alanı adı olarak da adlandırılan tek bir değer (Uniform Resource Identifier (URI)) içerir. URI, ad alanı tanımınızın benzersiz olmasını sağlamanıza yardımcı olur.

İki yöntemden birini kullanarak bir ad alanı tanımı bildirip bir ad alanı oluşturursunuz. Bir XML ad alanı tanımlayacağınızdan, açık bir URI ile bir ad alanını tanımlayabilir veya URI'yi atabilirsiniz. Aşağıdaki örnek, URI kullanılarak bir ad alanının nasıl tanımlanabildiğini gösterir:

namespace flash_proxy = "http://www.adobe.com/flash/proxy";

URI, o ad alanı için benzersiz bir kimlik dizesi görevi görür. Aşağıdaki örnekteki gibi, URI'yi atarsanız, derleyici URI yerine benzersiz bir dahili kimlik dizesi oluşturur. Bu dahili kimlik dizesine erişiminiz olmaz.

namespace flash_proxy;

Siz URI ile veya URI olmadan bir ad alanını tanımladıktan sonra, o ad alanı aynı kapsamda yeniden tanımlanamaz. Aynı kapsamda önceden tanımlanmış bir ad alanını tanımlama girişimi, bir derleyici hatasına yol açar.

Bir paket veya sınıf içinde bir ad alanı tanımlanırsa, uygun erişim denetimi belirticileri kullanılmadığı sürece, söz konusu ad alanı, o paket veya sınıf dışındaki koda görünmeyebilir. Örneğin, aşağıdaki kod, flash.utils paketinde tanımlanan flash_proxy ad alanını gösterir. Aşağıdaki örnekte, erişim denetimi belirticisinin olmaması, flash_proxy ad alanının yalnızca flash.utils paketindeki koda görüneceği ve bu paket dışındaki kodlara görünmeyeceği anlamına gelir:

package flash.utils
{
namespace flash_proxy;
}

Aşağıdaki kod, flash_proxy ad alanını paket dışındaki kodlara görünür duruma getirmek için public niteliğini kullanır:

package flash.utils
{
public namespace flash_proxy;
}

Ad alanlarını uygulama

Ad alanı uygulanması, bir ad alanına bir tanımın yerleştirilmesi anlamına gelir. Ad alanlarına yerleştirilebilen tanımlar arasında, işlevler, değişkenler ve sabitler yer alır. (Özel bir ad alanına sınıf yerleştiremezsiniz.)

Örneğin, public erişim denetimi ad alanı kullanılarak bildirilen bir işlevi göz önünde bulundurun. Bir işlev tanımında public niteliği kullanıldığında, o işlev genel ad alanına yerleştirilir ve böylece işlev, tüm kod için kullanılabilir olur. Bir ad alanını tanımladıktan sonra, tanımladığınız ad alanını public niteliğiyle aynı şekilde kullanabilirsiniz ve tanım da özel ad alanınıza başvurabilen kod için kullanılabilir olur. Örneğin, bir example1 ad alanını tanımlarsanız, aşağıdaki örnekte gösterildiği gibi, nitelik olarak example1 öğesini kullanıp myFunction() adında bir yöntemi ekleyebilirsiniz:

namespace example1;
class someClass
{
example1 myFunction() {}
}

Nitelik olarak example1 ad alanı kullanılarak myFunction() yönteminin bildirilmesi, yöntemin example1 ad alanına ait olduğu anlamına gelir.

Ad alanlarını uygularken aşağıdakileri göz önünde bulundurmanız gerekir:

  • Her bildirime yalnızca bir ad alanı uygulayabilirsiniz.

  • Aynı anda birden çok tanıma bir ad alanı niteliği uygulanamaz. Başka bir deyişle, ad alanınızı on farklı işleve uygulamak istiyorsanız, on işlev tanımının her birine nitelik olarak ad alanınızı eklemeniz gerekir.

  • Ad alanları ve erişim denetimi belirticileri birbirini dışladığından, bir ad alanı uygularsanız, bir erişim denetimi belirticisi de belirtemezsiniz. Başka bir deyişle, bir işlevi veya özelliği ad alanınıza uygulamanın yanı sıra public, private, protected ya da internal olarak bildiremezsiniz.

Ad alanlarına başvurma

public, private, protected ve internal gibi herhangi bir erişim denetimi ad alanıyla bildirilmiş bir yöntem veya özellik kullandığınızda, ad alanına açıkça başvurulmasına gerek yoktur. Bunun nedeni, bu özel ad alanlarına erişimin bağlama göre denetlenmesidir. Örneğin, private ad alanına yerleştirilen tanımlar, aynı sınıf içindeki kod için otomatik olarak kullanılabilir olur. Ancak tanımladığınız ad alanları için böyle bir bağlam duyarlılığı yoktur. Özel bir ad alanına yerleştirdiğiniz bir yöntem veya özelliği kullanmak için, ad alanına başvurmanız gerekir.

use namespace direktifiyle ad alanlarına başvurabilir veya ad niteleyicisi (::) işaretini kullanarak ad alanıyla adı niteleyebilirsiniz. use namespace direktifiyle bir ad alanına başvurulması, ad alanını “açar”, böylece ad alanı nitelendirilmiş olmayan herhangi bir tanımlayıcıya uygulanabilir. Örneğin, example1 ad alanını tanımladıysanız, use namespace example1 direktifini kullanarak o ad alanındaki adlara erişebilirsiniz:

use namespace example1;
myFunction();

Aynı anda birden çok ad alanı açabilirsiniz. Siz use namespace direktifiyle bir ad alanını açtıktan sonra, bu ad alanı, açıldığı kod bloğu boyunca açık kalır. Ad alanını açıkça kapatmanın bir yolu yoktur.

Ancak birden çok ad alanının açılması, ad çakışması olma olasılığını artırır. Bir ad alanını açmamayı tercih derseniz, yöntem veya özellik adını ad alanı ve ad niteleyicisi işaretiyle niteleyerek use namespace direktifini önleyebilirsiniz. Örneğin, aşağıdaki kod, myFunction() adını example1 ad alanıyla nasıl niteleyebileceğinizi gösterir:

example1::myFunction();

Ad alanlarını kullanma

ActionScript 3.0'ın parçası olan flash.utils.Proxy sınıfında ad çakışmalarını önlemek için kullanılan bir gerçek ad alanı örneğini bulabilirsiniz. ActionScript 2.0'daki Object.__resolve özelliğinin yerini alan Proxy sınıfı, bir hata oluşmadan önce tanımsız özellik veya yöntemlere yapılan başvuruları önlemenize yardımcı olur. Ad çakışmalarını önlemek için, Proxy sınıfının tüm yöntemleri, flash_proxy ad alanında bulunur.

flash_proxy ad alanının nasıl kullanıldığını daha iyi anlamak için, Proxy sınıfının nasıl kullanıldığını anlamanız gerekir. Proxy sınıfının işlevselliği, yalnızca Proxy sınıfından miras alan sınıflar için kullanılabilir durumdadır. Başka bir deyişle, bir nesnede Proxy sınıfının yöntemlerini kullanmak isterseniz, nesnenin sınıf tanımının, Proxy sınıfını genişletmesi gerekir. Örneğin, tanımsız bir yöntemi çağırma girişimlerinin tümünü önlemek istiyorsanız, Proxy sınıfını genişletir ve daha sonra Proxy sınıfının callProperty() yöntemini geçersiz kılarsınız.

Ad alanlarının uygulanmasının genellikle ad alanını tanımlama, uygulama ve ad alanına başvurma olmak üzere üç adımlık bir işlem olduğunu hatırlayabilirsiniz. Ancak, Proxy sınıfı yöntemlerinden herhangi birini asla açıkça çağırmadığınızdan, flash_proxy ad alanı yalnızca tanımlanır ve uygulanır fakat bu ad alanına asla başvurulmaz. ActionScript 3.0, flash_proxy ad alanını tanımlar ve bunu Proxy sınıfında uygular. Kodunuzun yalnızca Proxy sınıfını genişleten sınıflara flash_proxy ad alanını uygulaması gerekir.

flash_proxy ad alanı, flash.utils paketinde aşağıdakine benzer şekilde tanımlanır:

package flash.utils
{
public namespace flash_proxy;
}
 

Aşağıdaki Proxy sınıfı alıntısında gösterildiği gibi, ad alanı, Proxy sınıfının yöntemlerine uygulanır:

public class Proxy
{
flash_proxy function callProperty(name:*, ... rest):*
flash_proxy function deleteProperty(name:*):Boolean
...
}

Aşağıdaki kodda gösterildiği gibi, ilk olarak hem Proxy sınıfını hem de flash_proxy ad alanını içe aktarmanız gerekir. Daha sonra, Proxy sınıfını genişletecek şekilde sınıfınızı bildirmeniz gerekir. (Katı modda derleme yapıyorsanız, ayrıca dynamic niteliğini de eklemeniz gerekir.) callProperty() yöntemini geçersiz kıldığınızda, flash_proxy ad alanını kullanmanız gerekir.

package
{
import flash.utils.Proxy;
import flash.utils.flash_proxy;

dynamic class MyProxy extends Proxy
{
flash_proxy override function callProperty(name:*, ...rest):*
{
trace("method call intercepted: " + name);
}
}
}

MyProxy sınıfının bir örneğini oluşturur ve aşağıdaki örnekte çağrılan testing() yöntemi gibi tanımsız bir yöntem çağırırsanız, Proxy nesneniz yöntem çağrısını önler ve geçersiz kılınan callProperty() yönteminin içinde deyimleri çalıştırır (bu durumda, basit bir trace() deyimi).

var mySample:MyProxy = new MyProxy();
mySample.testing(); // method call intercepted: testing

flash_proxy ad alanının içinde Proxy sınıfı yöntemlerinden birinin bulunmasının iki avantajı vardır. İlk olarak, ayrı bir ad alanının bulunması, Proxy sınıfını genişleten herhangi bir sınıfın genel arabiriminde karmaşıklığı azaltır. (Proxy sınıfında, geçersiz kılabileceğiniz yaklaşık bir düzine yöntem vardır ve bunların hiçbiri doğrudan çağrılmak üzere tasarlanmamıştır. Bunların tümünün genel ad alanına yerleştirilmesi kafa karıştırıcı olabilir.) İkinci olarak, flash_proxy ad alanının kullanılması, Proxy alt sınıfınızın herhangi bir Proxy sınıfı yöntemiyle eşleşen adlara sahip örnek yöntemler içermesi durumunda ad çakışmalarını önler. Örneğin, kendi yöntemlerinizden birine callProperty() adını vermek isteyebilirsiniz. callProperty() yöntemi sürümünüz farklı bir ad alanında olduğundan, aşağıdaki kod kabul edilebilir:

dynamic class MyProxy extends Proxy
{
public function callProperty() {}
flash_proxy override function callProperty(name:*, ...rest):*
{
trace("method call intercepted: " + name);
}
}

Dört erişim denetimi belirticisiyle (public, private, internal ve protected) gerçekleştirilemeyecek şekilde yöntemlere veya özelliklere erişim sağlamak istediğinizde de ad alanları yardımcı olabilir. Örneğin, birçok pakete yayılmış birkaç yardımcı program yönteminiz olabilir. Bu yöntemlerin, tüm paketleriniz için kullanılabilir olmasını ancak genel olarak herkese açık olmamasını istersiniz. Bunu yapmak için, yeni bir ad alanı oluşturabilir ve bunu kendi özel erişim denetimi belirticiniz olarak kullanabilirsiniz.

Aşağıdaki örnek, farklı paketlerde bulunan iki işlevi birlikte gruplandırmak için kullanıcı tanımlı bir ad alanı kullanır. Bunları aynı ad alanında gruplandırarak tek bir use namespace deyimini kullanıp her iki işlevi bir sınıf veya paket için görünebilir duruma getirebilirsiniz.

Bu örnekte tekniği göstermek için dört dosya kullanılmaktadır. Tüm dosyaların sınıf yolunuzda yazılması gerekir. Birinci dosya olan myInternal.as, myInternal ad alanını tanımlamak için kullanılır. Dosya, example adındaki bir pakette bulunduğundan, dosyayı example adındaki bir klasöre yerleştirmeniz gerekir. Ad alanı, diğer paketlere içe aktarılabilmesi için public olarak işaretlenir.

// myInternal.as in folder example
package example
{
public namespace myInternal = "http://www.adobe.com/2006/actionscript/examples";
}

İkinci ve üçüncü dosyalar olan Utility.as ve Helper.as, diğer paketler için kullanılabilir olması gereken yöntemlerin bulunduğu sınıfları tanımlar. Utility sınıfı, example.alpha paketindedir, başka bir deyişle, example klasörünün alt klasörü olan alpha adında bir klasörün içine dosyanın yerleştirilmesi gerekir. Helper sınıfı, example.beta paketindedir, başka bir deyişle, example klasörünün alt klasörü olan beta adında bir klasörün içine dosyanın yerleştirilmesi gerekir. Bu her iki example.alpha ve example.beta paketinin de ad alanını kullanmadan önce içe aktarması gerekir.

// Utility.as in the example/alpha folder
package example.alpha
{
import example.myInternal;

public class Utility
{
private static var _taskCounter:int = 0;

public static function someTask()
{
_taskCounter++;
}

myInternal static function get taskCounter():int
{
return _taskCounter;
}
}
}

// Helper.as in the example/beta folder
package example.beta
{
import example.myInternal;

public class Helper
{
private static var _timeStamp:Date;

public static function someTask()
{
_timeStamp = new Date();
}

myInternal static function get lastCalled():Date
{
return _timeStamp;
}
}
}

Dördüncü dosya olan NamespaceUseCase.as, ana uygulama sınıfı olup example klasörünün bir eşdüzeyi olması gerekir. Adobe Flash CS4 Professional'da bu sınıf, FLA'nın belge sınıfı olarak kullanılır. NamespaceUseCase sınıfı ayrıca myInternal ad alanını içe aktarır ve diğer paketlerde bulunan iki statik yöntemi çağırmak için bu ad alanını kullanır. Bu örnek yalnızca kodu basitleştirmek için statik yöntemleri kullanır. myInternal ad alanına hem statik yöntemler hem de örnek yöntemleri yerleştirilebilir.

// NamespaceUseCase.as
package
{
import flash.display.MovieClip;
import example.myInternal; // import namespace
import example.alpha.Utility;// import Utility class
import example.beta.Helper;// import Helper class

public class NamespaceUseCase extends MovieClip
{
public function NamespaceUseCase()
{
use namespace myInternal;

Utility.someTask();
Utility.someTask();
trace(Utility.taskCounter); // 2

Helper.someTask();
trace(Helper.lastCalled); // [time someTask() was last called]
}
}
}
Flash Template Download