İçeriğin rss beslemesi kullanımda değil Soru - Cevap Bölümü

Kullanıcıya Ait Cevap

adres lostchild profilini göster
lostchild 20.12.2004 02:50:16
En iyi cevap mı ?

AS1’ de yazılan prototype lar AS2 de kullanılabilir. Bu yüzden MovieClip için ayrıca class yaratmanıza gerek yok. Çünkü aslında,internal olarak hala AS1 e çevriliyor AS2 :


/*
 AS1+AS2
*/
// ->prototype üzerinde
MovieClip.prototype.rotate = function(){
    this.onEnterFrame = function(){
        this._rotation--
    }
}
polygon_mc.rotate()
// direkt sınıf üzerinde
MovieClip.testClip = 'test...'
trace(MovieClip.testClip)

Söylediklerimizin işlemeyeceği durumlar var. Şöyle ki : AS2 deki sınıfları buradaki sorun açısından iki gruba ayırabiliriz :

* ( dinamik olmayan ) sınıflar


class Gazete {
    // yapılacaklar ...
}

Bu sınıfın kendisine ( prototype ına değil) ve bu sınıfın örneği( instance ı) olan nesnelere yeni bir metod veya özellik ekleyemeyiz. output ta derleyici hatası verecektir (compile error)

* dinamik sınıflar

dynamic class OnlineGazete {
    // yapılacaklar
}

Bu sınıfın kendisine ve bu sınıfın örneği( instance ı) olan nesnelere yeni bir metod veya özellik ekleyebiliriz.

Tüm AS2 sınıflarının prototype larını kullanabilirsin. Kullanamayacağın durumlar :

Mesela AS2’ de Stage ve Math nesnelerine yeni metodları AS1 stilinde ekleyemezsin. Aslında öncelikle, bu iki sınıfa zaten prototype yazılmaz ( öyle denir ama…). Çünkü bunlar statik sınıftır, daha açık olarak söylenirse, bunları kullanmak için bunların instance larını oluşturmaz, direkt kullanırız. örnek olarak :

// AS1 ->yanlış
Math.prototype.isNatural = function(number)
    var isPositive = ( number>=0)
    var isInteger = (number%1 == 0) 
    return isPositive && isInteger
}
// AS1 ->doğru
Math.isNatural = function(number)
    var isPositive = ( number>=0)
    var isInteger = (number%1 == 0) 
    return isPositive && isInteger
}
var x = Math.isNatural(4)
trace(x)

zaten basit çerçevede, mantık olarak ne Math ın ne de Stage in örneğini oluşturmanın bir anlamı yoktur. Misal olarak Stage bir tanedir o esnada ( o swf için ). Haliyle onun instance ını oluşturabiliyor olmak da manasız olurdu. Uzatmadan sadede gelirsek, AS2 deki internal sınıfların,("built-in" olarak tabir edilenler)bazıları dinamiktir, bazıları da dinamik değildir.işte Math ve Stage dinamik olmayan ve instance ları oluşturulmaayan sınıflardan, haliyle arıza çıkartıyorlar. Ama verdiğim örnekte de olduğu gibi MovieClip ve diğer sınıflar için prototype yazabilir ve AS2 de kullanabilirsin.Yani prototype a yeni metod ve özellikler ya da eventhandler lar eklemede sınıfın dinamik veya dinamik olmayışının bir önemi yok.

Hoşuma giden bir konu olduğu için uzattım sanırım. Eğer Math veya Stage gibi dinamik olmayan instance ı oluşturulmadan kullanılan sınıflara ( nesnelere) metod veya özellikleri nasıl ekleyebileceğini merak ediyorsan bunu da yazmaya çalışırım, çünkü bir kaç yolu var (biraz detaylı…)

iyi çalışmalar…

17/12/2004 - 08:12:43 cevap (7) Okunma : 9637 Bu yazıyı 1 kişi tuttu.

prototype class

Selamlar

Öncelikle forumun tüm Flash alemine hayırlı olmasını dileyeyim ve bir soruyla bu kategorideki açılışı yapayım.

Bu aralar Çizim API leri ile fazlasıyla ilgileniyorum ve her çizim şekli için prototipler tanımlıyorum. Bildiğim kasarıyla .prototype olayı Flash 5 stili.

Gerçi benim için yazımı çok kolay oluyor ama bu prototipleri ileriye dönük uyumluluk açısından class dosyaları haline getirmek istiyorum. işte bu noktada çok takıldım ve bir türlü başarılı olamadım.

Aşağıda örnek olarak vereceğim prototipin class biçimini benim için tanımlarsanız fazlasıyla memnun olurum :D

MovieClip.prototype.kareCiz = function(x,y,w,h){
      //parametreler string geliyor
      //number a çevriliyor
      var x = parseFloat(x); //x eksendeki nokta
      var y = parseFloat(y); //y eksendeki nokta 
      var w = parseFloat(w); //genişlik 
      var h = parseFloat(h); //yükseklik
      this.moveTo(x,y);
      this.lineStyle(1, 0x000000, 100);
      this.lineTo(w,y);
      this.lineTo(w,h);
      this.lineTo(x,h);
      this.lineTo(x,y);
}

.

yeni üyelik | şifremi unuttum

aç-kapa Yarışma Fikir10000 Dijital Pazarlama Fikir Yarışması

Fikir10000 Dijital Pazarlama Fikir Yarışması

ADTECH tarafından düzenlenen Fikir10000 yarışmasına; dijital pazarlama ile ilgili size ait olan fikrinizle katılabilir ve 10.000 YTL’lik birinci...
Kategori: Yarışma

aç-kapa Toplantı Kahraman ve need4code.com Projesi Connect Toplantısı

Kahraman ve need4code.com Projesi Connect Toplantısı

Selam arkadaslar, Programlama ile uğraşanların hayatlarını kolaylaştıracak desktop ve web tabanlı ortak iki proje ile ilgili 3. toplantımızı 16Aralı...
Kategori: Toplantı

aç-kapa Yarışma 7Dx Demoscene Party

7Dx Demoscene Party

2002 yılından beri amatör bilgisayar kültürü ile ilgilenen insanları bir araya getirmeyi hedefleyen 7DX parti serisinin bu seneki ayağı olan 7D8 Demo ...
Kategori: Yarışma

aç-kapa Eğitim Türkiye'de İnternet Konferansı - Internet Teknolojileri Derneği -22-23 Aralık ODTÜ

Türkiye'de İnternet Konferansı - Internet Teknolojileri Derneği -22-23 Aralık ODTÜ

Etkin Katılım Çağrısı Türkiye’de Internet ile ilgili grupları biraraya getirerek İnternet’i tum boyutlarıyla tanıtmak, gelistirmek, tartı...
Kategori: Eğitim

aç-kapa Konferans Bilgi Güvenliği ve Kriptoloji Konferansı

Bilgi Güvenliği ve Kriptoloji Konferansı

Önemli Tarihler: Etkinlik Tarihi : 24-26 Aralık 2008 Son Bildiri Gönderme Tarihi : 20 Ekim 2008 Bildiri Kabul Tarihi Bildirimi :...
Kategori: Konferans

üyeler Son Kahramanlar...

stats Kimler Burada? web stats

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

bh.candan ...
coldfusion mysql ubuntu
 
sponsor adobe istanbul