Profili Göster

Sprite - Shape - MovieClip Arasındaki Farklar Nelerdir?

Yağız Gürgül Tarih: 7/04/2008 Yorum: 1 adet

Okunma : 616 Tutanlar: Bu yazıyı 2 kişi tuttu.

AS3 ile Sprite ve Shape geldi.İyiki de geldi çünkü yeni gelen bu iki sınıf performansı iyice arttırıyor.Biliyorsunuzki her objenin bir hafızası var.İçindeki başka objeler, değişkenler ile bu hafıza büyüyor ve performansı yavaşlatıyor.

Sprite ve MovieClip Arasında Fark var mı?

Tabiki var.Öncelikle en büyük farkı Sprite’ın bir timeline’ı yok.Yani sprite içine bir değişken atayamazsınız.Bunu yaptığınız taktirde hata oluşur. Sprite çizim araçlarını(API) çalıştırabilir.Veya içine başka bir obje(Button, MovieClip, Shape…) alabilir. MovieClip için geçerli olan startDrag alpha gibi kodları kullanabilir.MouseEvent ekleyebilirsiniz. Ama içine değişken eklenemediği için(XML, String, Number, int…) hafızası MovieClip’ten küçük ve bu yüzden Sprite daha performanslı.

Sprite için örnek bir kod:

var obje:Sprite = new Sprite();
obje.graphics.beginFill(0xFF0000);
obje.graphics.drawCircle(0,0,50);
obje.startDrag(true);
addChild(obje);

Bu kodu yazdığınızda bir sprite objesi oluşur.İçi boyanır ve bir daire çizilir.Ardından bu objeye startDrag() komutu verilir.Gördüğünüz gibi bir sorun yok.

Ama şu kodu denerseniz: var obje:Sprite = new Sprite(); obje.graphics.beginFill(0xFF0000); obje.graphics.drawCircle(0,0,50); obje.startDrag(true); // obje.degisken="as3″; addChild(obje);

Hata verir.Bunun nedeni demin de söylediğimiz gibi Timeline’a sahip olmaması; ama MovieClip ile denerseniz herhangi bir soruna ulaşmazsınız:

var obje:MovieClip = new MovieClip();
obje.graphics.beginFill(0xFF0000);
obje.graphics.drawCircle(0,0,50);
obje.startDrag(true);
//
obje.degisken="as3″;
trace(obje.degisken);
addChild(obje);

Output ekranında as3 yazar.Gördüğünüz gibi MovieClipler değişken alabiliyor.

Sprite ile Shape Arasında Fark var mı?

Evet var.Sprite’ın MovieClip özelliklerini alabildiğini söylemiştik; ama Shape bunları ve değişkenleri alamıyor.Shape sadece çizim araçlarını(API) kullanabiliyor ki tek özelliği budur.Bu durumda hafızası çok küçülüyor.Bu yüzden Shape daha performanslı.

Örnek Shape kodu:

var obje:Shape = new Shape();
obje.graphics.beginFill(0xFF0000);
obje.graphics.drawCircle(0,0,50);
obje.x=60;
obje.y=200;
addChild(obje);

Test ettiğinizde bir hata almicaksınız; ama unu denerseniz:

var obje:Shape = new Shape();
obje.graphics.beginFill(0xFF0000);
obje.graphics.drawCircle(0,0,50);
obje.x=60;
obje.y=200;
obje.startDrag(true);
addChild(obje);

hata alırsınız.Gördüğünüz gibi startDrag komutunu kabul etmiyor.obje. yazdıktan sonra açılan küçük pencereden hangi özellikleri alabildiğini görebilirsiniz.

Bir de değişken atarak deneyin:

var obje:Shape = new Shape();
obje.graphics.beginFill(0xFF0000);
obje.graphics.drawCircle(0,0,50);
obje.x=60;
obje.y=200;
obje.degisken="as3″;
addChild(obje);

Gene hata verir; çünkü Shape sınıfının da bir timeline’ı yok.

Peki Sprite veya Shape içine hiç mi değişken atıyamamayız? Sprite veya Shape extend edilmiş bir sınıf yaratırsak kendi Shape veya Sprite sınıfımızı yapabiliriz.

Aslında performans bakımından bu üçü arasından en iyisi Shape olarak gözükse de bu sizin kullanacağınız alana bağlı… Mesela bir labirent oyunu yapıyorsanız labirentleri Shape ile çizmek daha performanslıdır. Ama bir menu yapıyorsanız Sprite daha iyidir.

aç-kapa İçeriğin rss beslemesi kullanımda değil Yorumlar

Profili Göster
Erdal Taşdemir 15/06/2008

yağız, yazın bence as 3.0 giriş konusu için güzel bir başucu eseri olmuş. İlk başta ben shape i değilde sprite ı gereksiz görmüştüm ama sonra, önceki as 2 deneyimlerimde vektorlerin cpu sömüren kısıtlayıcı taraflarını ve olmazsa olmaz movieClip içinde kullanım zorunluluğunu düşündüğümde gayet mantıklı geldi. Her as 3.0 öğrencisi sprite ve shape ile yüzleceşeceği için bu kısa/öz bilginin mutlaka incelenmesi çok faydalı olacaktır. Eline sağlık.

MMIstanbul Adobe UG MMIstanbul Adobe UG

adobe user group

ColdFusion, Flex, AIR, Flash, PDF, Dreamweaver, Fireworks, Photoshop, Illustrator, iNdesign, Premiere, Soundbooth, Lightroom, InCopy, JRun, LiveCycle, Acrobat, AfterEffects, Resmi Adobe Kullanıcı Grubu.

yeni üyelik | şifremi unuttum

aç-kapa Konferans IBM Yazılım Zirvesi '08, Değişim Açlığı

IBM Yazılım Zirvesi '08, Değişim Açlığı

Değişim açlığı, Hungry for Change teması çerçevesinde düzenlenecek IBM Yazılım zirvesi Ankara ve İstanbulda düzenlenecek: 15 Ekim 2008 Swissotel the...
Kategori: Konferans

aç-kapa Fuar Contemporary İstanbul Sanat Fuarı

Contemporary İstanbul Sanat Fuarı

Contemporary İstanbul Sanat Fuarı, 16-19 Ekim tarihleri arasında sanatseverlerle buluşacak. Bu yıl üçüncüsü düzenlenen fuar, İstanbul Lütfi Kırdar Ulu...
Kategori: Fuar

aç-kapa Yarışma TBD - Halıcı 15. Bilgisayarla Beste Yarışması

TBD - Halıcı 15. Bilgisayarla Beste Yarışması

TBD – Halıcı 15. Bilgisayarla Beste Yarışması TBD – Halıcı Bilgisayarla Beste Yarışması Türkiye Bilişim Derneği tarafından düzenlenen &q...
Kategori: Yarışma

aç-kapa Seminer MS Project ile Proje Yönetimi

MS Project ile Proje Yönetimi

[b]ZeruMax bilisim hizmetleri MS PROJECT İLE PROJE YÖNETİMİ Ms Project kullaniminin uygulamali ve pratik olarak anlatilacagi bu egitimi kacirmayin&#...
Kategori: Seminer

aç-kapa Yarışma Üniversiteler Arası Öğrenci Filmleri Yarışması

Üniversiteler Arası Öğrenci Filmleri Yarışması

Maltepe Üniversitesi’nin geleneksel olarak düzenlediği 6. Üniversitelerarası Öğrenci Filmleri Yarışması, kitle iletişim alanındaki yapım ve yayı...
Kategori: Yarışma

üyeler Son Kahramanlar...

stats Kimler Burada? web stats

Son 1 dakika içinde MMIstanbul' da 331 (1 kayıtlı, 330 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:

coldfusion mysql ubuntu
 
sponsor adobe istanbul