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

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

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 7 Eylül 2009 Pazartesi

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]".

0 yorum:

Yorum Gönder

Flash Template Download