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

Kullanıcıya Ait Cevap

adres lostchild profilini göster
lostchild 24.12.2004 03:35:54
En iyi cevap mı ?
Faydalı cevap

Ne yazık ki sadece AS2’ ye yönelik olan çözüm hiç de yaratıcı değil.Ayrı bir sınıf yaratıp içine yazmak :))

class newMath
{
    function isNatural(num:Number):Boolean
     {
    var isNotNegative:Boolean = ( number>=0)
    var isInteger:Boolean = (number%1 == 0) 
    return isNotNegative && isInteger
     }
}

aklımıza muhtemel olaarak gelecek olan diğer çözüm şu olabilirdi : yeni yarattığımız newMath adlı sınıfın, Math sınıfının metodlarını kullanabilmesi, yani şöyle :


class Math2 extends Math
{
    // kod...
}

Fakat bu da ne yazık ki işe yaramamakta.diğer iki çözüm AS1 ile ilgili. ilki, "intrinsic" anahtar kelimesi sayesinde gerçekleşmekte. Elimizde bir AS1 sınıfı varsa ve onu AS2 sınıfı gibi kullanmak istiyorsak, ( aslında sınıf değil datatype tanımı olan ) bir sınıf yaratıp onun içine sadece data type ları yazıyoruz.

Flash zaten internal olarak halen AS1 sınıflarını kullanıyor ( ve bunu yapıyor ) Flash mx2004 ün kurulu olduğu klasör altında "Flash MX 2004\EN\First Run\Classes"klasörünü açıp Math.as dosyasına bakarsak şunu görürüz :

( Aslında core class ların hepsinde görüyoruz )

intrinsic class Math
{
    static var E:Number;
    static var LN10:Number;
    static var LN2:Number;
    static var LOG10E:Number;
    static var LOG2E:Number;
    static var PI:Number;
    static var SQRT1_2:Number;
    static var SQRT2:Number;

    static function abs(value:Number):Number;
    static function acos(value:Number):Number;
    static function asin(value:Number):Number;
    static function atan(value:Number):Number;
    static function atan2(value1:Number,value2:Number):Number;
    static function ceil(value:Number):Number;
    static function cos(value:Number):Number;
    static function exp(value:Number):Number;
    static function floor(value:Number):Number;
    static function log(value:Number):Number;
    static function max(value1:Number,value2:Number):Number;
    static function min(value1:Number,value2:Number):Number;
    static function pow(value1:Number,value2:Number):Number;
    static function random():Number;
    static function round(value:Number):Number;
    static function sin(value:Number):Number;
    static function sqrt(value:Number):Number;
    static function tan(value:Number):Number;
}

Burada yapılanı, "intrinsic" kullanarak biz de yapabiliriz.

/*
    AS1 static method
    Math nesnesi zaten var Flash da
    flash dosyasında alttaki kod :
*/
Math.isNatural = function(num)
    var isNotNegative = ( num >=0)
    var isInteger = (num %1 == 0) 
    return isNotNegative && isInteger
}

// Math.as -> varolan AS2 sınıf dosyası 
intrinsic class Math
{
    /*
     Diğer satırların altına
     ... aşağıdaki satır eklencek ...
    */
    static function isNatural(num:Number):Boolean
}

Sonuncusu da benim böyle bir yol ararken bulduğum bir yöntem,ama normalde işlememesi gerekiyor, ama yine de işliyor (-: Niye işlediğini ben de merak ediyorum … !!


// AS1+AS2
var newMath = Math
// --->
newMath.isNatural = function(num)
    var isNotNegative = ( num >=0)
    var isInteger = (num %1 == 0) 
    return isNotNegative && isInteger
} 
// test
trace (newMath.isNatural(7))

Tek tek denemeye vaktim olmadı. ( sanmıyorum ama .. )umarım çalışmayan bir şey olmaz…

"prototype" mevzusu ise şöyle sanırım : Macromedia nın yeni sürümlerini artık tümüyle yeni kod mimarisine göre yapılandırmak isteyeceği doğru olsa gerek ve normal bir yaklaşım ama AS’de de, JS gibi ECMA model alınıyor.

http://www.mozilla.org/js/language/es4

ECMA da halen "prototype" var. Bilgi için : http://www.mozilla.org/js/language/es4/core/definitions.html#prototype

Bir de şunu eklemek gerek AS2 sınıflarında halen prototype var, hatta ECMA da olmayan proto var. hatta constructor , constructor var ( son iki özelliği sınıf dosyalarında göremezsin ama internal olarak kullanılıyor ).

Bu koşullarda, yakın bir gelecekte ( bir sürüm sonra örneğin ) prototype ın çıkarılması bana çok da mümkün görünmüyor.Öncelikle macromedia için bu bir risk ( geriye yönelik uyumsuzluk ) Çünkü pozisyonları aynı olmasa da, halen Flash 3/4/5 ten kalma AS elemanları desteklenmekte.

Kaldı ki halen AS1 ile iş yapan bir çok kişi var. Baktığımızda AS1 halen çok daha esnek bir yapıda bu tür metodları özellikleri eklemek açısından. ( Bunun örneklerini yukarıda yapmaya çalıştığımız şeyden görebiliriz )

iyi çalışmalar …

17/12/2004 - 08:12:43 cevap (7) Okunma : 9635 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 576 (1 kayıtlı, 575 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:

coldfusion mysql ubuntu
 
sponsor adobe istanbul