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

Kullanıcıya Ait Cevapları Göster: lostchild (15)

Soru: prototype class

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…

Soru: prototype class

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 …

Soru: Component preloading

adres lostchild profilini göster
lostchild 24.12.2004 10:38:01
En iyi cevap mı ?

Bu öneri çok basit olabilir, muhtemelen de düşünmüşsündür, ama : içinde, yüklenecek olan form application’ ı preload edecek bir swf yapılsa. yani :

bir swf yapıyoruz bu swf’ de leveln’ e veya boş bir klibe "form application" ı yüklüyoruz. nyüklemeyi de bu swf içinden yapıyoruz.

şu an bunu deneme şansım yok. o yüzden düşünmüşsen ya da işlemiyorsa ( ki işlemesi gerekir… ) kusura kalmayın artık (-:

iyi çalışmalar…

Soru: Component preloading

adres lostchild profilini göster
lostchild 25.12.2004 07:25:30
En iyi cevap mı ?

Şimdi, normalde komponentleri önyüklemek için kullandığımız yöntemi kullanabilir miyiz diye baktım. Olamıyor, çünkü ne yazık ki form ların kendileri birer component olarak görünmüyor flash içinde. Bu tabii ki ben mx2004 ile çok haşır neşir olamadığımdan dolayı bilmediğim bir şeydi.

Normal koşullarda komponetleri preload edebildiğimize göre bunları da aynı mantıkta ~ "export in 1st frame" i iptal ederek ve sınıfların export edildiği frame i 1’den farklı bir frame yaparak ~ becerebileceğimizi düşündüm.

Bu yüzden "belki yer" (-: diye şunu yaptım :

  • publish settings den classes bölümünde "1’de değil 2’de export et" dedim. Buna itiraz etmedi ama, export ederken de, tabii ki bunu dedi :
WARNING: 

The Export Frame for Classes specified in the Publish or Export settings, 
frame 2, does not exist. 
No bytecode for ActionScript 2.0 classes or interfaces was exported.

Yani Flash sanki bu fla 1 frame den oluşuyormuş gibi bir izlenim bırakıyor ( hani göya main screen de 1 frame var gibi ). Sonuçta bu bir swf olduğu için, düşündüm ki, aslında frame ler var ama flash, ortamda bize göstermiyor.

Ben de swf yi decompile ettim. koda baktığımda frame ler var.

Tek bir formun olduğu bir swf yi decompile ettiğimde 2 frame gördüm. Bu sebeplerden ötürü bir kaç screen daha ekleyerek görünen frame sayısının artıp artmadığını baktım. Artmıyor, yani gördüğüm kadarıyla ( yanılmıyorsak ) bir form application sanırım hep 2 frame den oluşuyor (_root ta ).

Sonuç olarak _root dendiğinde bu tabii ki bir "swf" olduğu için preload da yüklenme bitince "100%" görünüyor ama aradaki yüklenmeyi göremiyoruz. Problem tam olarak AS2 sınıflarının 1.frame de export edilmesini önleyememek.

Flash bunun için bize bir yol sunmamış.

Buradaki problemin flash ortamında yapılabilecek bir değişiklikle halledilebileceğini sanmıyorum. Şu yapılabilir,denenebilir :

Form.as ve Screen.as dosyalarından bu sınıflar incelenebilir, burada aslında birer MovieClip olan formlara nasıl referans verildiğine bakılabilir. Ve buna göre düşünülür taşınılır.

Bir diğeri de swf kodu üzerinde değişiklik yapıp onu yine swf ye çeviren bi program ile kodu değiştirmek Bu tabii ki biraz extrem bir çözüm

(-: Yapılabilecek olan şey de şu :

> SWF disassemble edilecek orada girişe bir empty frame konacak. oradan preload yapılacak ve böylece AS2sınıfları diğer frame e kaymış olacak.

Tabi bu bir deli işi olsa gerek çünkü normal bir swf değil uğraştığımız, ,bir form application sonuç olarak. Haliyle burada yapılacak bir değişiklik normal bir swf üzerinde yapılabilecek değişikliklerden çok farklı olacaktır muhtemelen.

Benim aklıma gelenler bunlar…

En azından problemin nereden kaynaklandığını tespit etmiş olduk sanırsam.

iyi çalışmalar…

Soru: Component preloading

adres lostchild profilini göster
lostchild 10.01.2005 07:53:42
En iyi cevap mı ?

bu bence,( sanırım )düşündüğün anlamda bir bug değil.

Çünkü, flash form application bir template ama, normal bir fla dan oluşturamıyoruz bu template i. Bu screen olayının halt yemesi (-:. Yapısal bir problem var. Bu ana screen, bir komponent mantığında timeline da yer almıyor. Orda görülen timeline, ana screen in timeline ı. Yani adamlar ne yazık ki bu konuda çuvallamışlar.. bunu nasıl giderecekler ben gerçekten çok merak ediyorum.

biraz kod deneyerek gördüm ki ana form _level0 da yer alıyor. Yani level mantığı var, ama flash bizden level0 ı, yani ana timeline ı saklıyor. problem de bu zaten ( böyle olmasaydı, ikinci bir frame yaratır, sınıfların preloader dan sonra yüklenmelerini sağlayabilirdik )

Fakat bahsettiğimiz yapıda, flash bizi "screen" adlı kutunun içine hapsetmiş. _parent a ulaşmak mümkün değil (authoring time da ).

var timeline = this
trace(timeline) // _level0.application
trace(typeof(timeline)) // movieclip

mx 2004 ü kaldırmak zorunda kaldım dün, ama sanırım aşağıdaki kodun sonucu "_level0" çıkmalı, düşündüklerim doğruysa :-

var mainTimeline = _parent
trace(mainTimeline) //_level0

iyi çalışmalar…

Soru: elektrik devresi tasarımı

adres lostchild profilini göster
lostchild 18.03.2005 05:01:51
En iyi cevap mı ?

tavsiye ederim …

http://www.flashsim.com/

Soru: Flash upload

adres lostchild profilini göster
lostchild 01.07.2005 20:58:22
En iyi cevap mı ?

Ben de bir ekleme yaparak ufak bir not düşmek istedim.

Bir sonraki flash player ( Maelstrom ) bir çok yeniliğin yeni sıra file upload ve download u mümkün kılıyor.

ilgili tanıtım videoları da vardı ama, sanırım bu pdf dosyası daha faydalı olacaktır kaynak olarak : http://www.macromedia.com/platform/whitepapers/platform_overview.pdf

iyi çalışmalar…

Soru: Flash upload

adres lostchild profilini göster
lostchild 22.08.2005 15:50:59
En iyi cevap mı ?

yeni flash player ımız çıktığına göre artık istediğinizi yapabilirsiniz … flash player 8 i yüklemeyi unutmayın tabi …

http://www.tink.ws/blog/flash8/FileReferenceExample.html

iyi çalışmalar…

Soru: e-learning, flashta sağtuş sürükleme

adres lostchild profilini göster
lostchild 21.09.2005 06:56:09
En iyi cevap mı ?

Bu istediğin muhtemelen yapılabilir, çünkü flash player da sağ klik olayı kullanılabiliyor, ama bir problem var. içerik eğer standalone flash player içerisinde görüntüleniyor ise, sağ klik yapıldığında flash a ait olan menünün görüntüleniyor olması. Bu da estetik ve kullanışlılık açısından pek hoş değil :D

Bir html içine gömülüyse JS ile sağ klik olayı flash player a gönderilebili ve muhtemelen drag de yaptırılabilir. Tam olarak durumu açıklarsan bir çözüm düşünmeye çalışırım. Yani swf tek başına mı çalışacak / bir browser da mı yoksa ayrı bir uygulamada mı ?

Soru: e-learning, flashta sağtuş sürükleme

adres lostchild profilini göster
lostchild 19.10.2005 02:23:37
En iyi cevap mı ?

ASnative adlı undocumented AS fonksiyonu ile bu yapılabiliyor. Yani actionscript ile sağ klik movie içerisinde algılanabilir ve kullanılabilir. Fakat undocumented olduğu için bu help de bulunmaz. Buna ek olarak middle click te aynı şekilde kullanılabiliyor. Bir örnek için bu post ta yaptığım örneğe bakın : http://www.macromediaturk.com/forum/viewtopic.php?p=33804#33804

Soru: e-learning, flashta sağtuş sürükleme

adres lostchild profilini göster
lostchild 01.11.2005 03:37:00
En iyi cevap mı ?

aslında var … browser içindeyken sağ klik olayı iptal edilir ..

ama bu bir event olduğu için de JS ile swf ye gönderilir. buna göre, mesela kendimize ait bir sağ klik menüsü gibi bir menü çıkartılabilir swf içinde. Context Menu ile varolan menüye zaten bişiler eklenip çıkartılabiliyor…

eğer swf bir exe içine embed ediliyorsa o zaman zaten bu menü direkt olarak iptal edilebililyor.

Soru: Flex tabanlı siteler

adres lostchild profilini göster
lostchild 15.05.2006 07:06:14
En iyi cevap mı ?

Flex 2.0 kullanan var mı arkadaşlar ? Bir bug sonucu, uzun bir gecikmenin ardından ancak başlayabildim :/

Soru: AIR ile swf çıktısı almak.

adres lostchild profilini göster
lostchild 18.02.2008 17:10:47
En iyi cevap mı ?

Bahsettiğin şey yapılabilir teorik olarak, çünkü AS3 ile basit swf çıktıları alınabiliyor… ByteArray kullanılıyor olmalı bunun için. Yani mümkündür.

Soru: Actionscript 3 için Uml Editor Varmı?

adres lostchild profilini göster
lostchild 18.02.2008 23:36:44
En iyi cevap mı ?

‘Violet UML’ adlı editörü buldum. Henüz denemeye vaktim olmadı :

http://selfmummy.com/vasgen/#code

Menüde-> File/Export To/Action Script3 seçeneği ile kod elde edilebiliyor…

Soru: Flex 3 Builder veya Flex 3 SDK çalışır mı ?

adres lostchild profilini göster
lostchild 25.02.2008 22:59:53
En iyi cevap mı ?

Çok teşekkür ederim… Ben sadece SDK’yı kullanıyorum. Komik de bir durum aslında. Bööle bakıp, java parametreleri felan, Eclipse de kullanmadığımdan, ‘cık cık cık ‘ demiştim. Ama jvm.config dosyasının başına:

-clean

yazdım ve çalıştı birden. Bir nevi, garson çatalı zeytine batırınca, ‘e tabi ben yordum zeytini’ diyen adam gibi hissettim kendimi. Son aylarda, kasılmadan yaptığım en temiz konfigürasyon oldu :D iyi çalışmalar…

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 380 (1 kayıtlı, 379 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:

imecin ...
coldfusion mysql ubuntu
 
sponsor adobe istanbul