• 29-06-2008, 19:39:47
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    rollOver/rollOut hakkında detaylı uygulama;
    Standart olarak kullanılan rollOver/rollOut uygulamasında yaşanılan bazı problemler olacaktır. Bunlardan en basiti şudur;
    Kod girdisinde bulunurken Over için
    on (rollOver) { this.gotoAndPlay(2); }
    Out için ise
    on (rollOut) { this.gotoAndPlay(16); }
    Gibi örnek teşkil eden bir kod gireriz burada klip üzerine gelindiğinde 2. frame, üzerinden çekilinildiğinde 16. frame'e gitmesi emredilir. Lakin bu bir programlama hatası olarak görüş kazanır karşı tarafca. Bu hata nedir?
    Üzerine gelinip, çekilip tekrar üzerine gelindiğinde küt bir görüntü ile önce 2. frame sonra 16. frame ve sonra tekrar 2. frame gidecektir bu da amatörce bir görünüm oluşturacaktır. Buna çözüm aşağıdaki verdiğim uygulamayı kullanırsak herhangi bir sorunla karşılaşmayız.
    Sahnemize 200x100 boyutlarında rectangle tools araçlarından kare olanı seçip bir obje yaratalım. Bu objemizi movieclip haline getirelim ve üzerine çift tıklayarak içerisine girelim.
    20 frame'e gelelim f6 tuşuna basarak bir keyframe oluşturalım. Bu bölümde çizmiş olduğumuz objeyi 400x200 boyutlarına getirelim ve framelerin ortasına gelerek Shape Tween özelliği verelim.
    Buraya kadar olan bölümleri başarı ile yapmışsak şimdi de yine içerisine girmiş olduğumuz clip'in 1. frame'ine aşağıdaki kodları girelim.
    this.onEnterFrame = function() {
    	if (deger == 1) {
    		this.nextFrame();
    	} else if (deger == -1) {
    		this.prevFrame();
    	}
    };
    stop();
    Bu kodları clip'in içindeki ilk frame'e girdikten sonra boş ekrana çift tıklayarak ana sahnemize gelelim, geldikten sonra movieclip üzerine tıklayalım ve action kutusunu açarak aşağıda ki kodları girelim.
    on (rollOver, dragOver) {
    	this.deger = 1;
    }
    on (releaseOutside, rollOut, dragOut) {
    	this.deger = -1;
    }
    Herşey tamam diyorsanız, CTRL+Enter yaparak test edebilirsiniz.
  • 29-06-2008, 20:05:51
    #2
    Tesekkurler
  • 29-06-2008, 20:21:46
    #3
    Rica ederim;
    Daha önce farklı platform'larda sunduğum gelişime açık uygulamaları ve dersleri burada da devam ettireceğim.
    İkincil olarak değineceğim konu;

    Her MovieClip'e farklı FPS(hız) değeri atamak.

    Bunun pek mümkün olmadığını savunanlar mevcuttu lakin küçük bir noktayı atlıyorlardı denedim ve gayet başarılı oldu. Küçük ama can alıcı nokta "setInterval" 'dir.
    Aşağıda da nasıl olabildiğini göreceksiniz.
    Flash'ı açıp yeni bir çalışma alanı açınız, bu alanın ilk frame'ine aşağıdaki verdiğim kodu kopyalayın ve frame içerisine yapıştırın.
    MovieClip.prototype.fpshizi = function(fps) {
            this.stop();
            if (this.fpsayi != undefined) {
                    clearInterval(this.fpsayi);
                    delete this.fpsayi;
            }
            this.nxt = function(ptr) {
                    if (ptr._currentframe<ptr._totalframes) {
                            ptr.nextFrame();
                    } else {
                            ptr.gotoAndStop(1);
                    }
                    updateAfterEvent();
            };
            this.fpsayi = setInterval(this.nxt, Math.round(1000/fps), this);
    };
    Bu kodu yerleştirdikten sonra, kendinize bir tane movieclip hazırlayın ve içerisine sıradan bir efekt uygulayın. (Efektin sürekliliğine dikkat edin, stop(); kullanmayın efekt içerisinde)
    Bu movieclip'imizi kopyala yapıştır ile çoğaltın örneğin 3 tane çoğaltmış isek.
    Ana movieclip'in instance name'i "standart"
    İkincisine "fps10"
    Üçüncüsüne "fps40"
    Dördüncüsüne "fps80"
    Olmak üzere instance name'leri girin daha sonra aşağıda ki kodu, üst bölümde vermiş olduğum kodun altına kopyalayın.
    fps10.fpshizi (10)
    fps40.fpshizi (40)
    fps80.fpshizi (80)
    Bu kodu da yapıştırdıktan sonra, herşeyi doğru yaptığınıza eminseniz.
    CTRL+Enter ile uygulamayı test edebilirsiniz.
    Uygulamayı detaylı bir biçimde incelemek için daha önce FFiles'de de yayınladığım link üzerinden .FLA'ı download edebilirsiniz.
    Adobe flash FPS increasing and decreasing (file 1365)

    Sevgilerle...
  • 30-06-2008, 21:58:51
    #4
    3. Buton'a çift tıklayarak çalıştırmak.


    Yeni bir çalışma dosyası açıp, aşağıda bahsettiklerimi uygulayınız.
    ----
    Sahnemize bir kare çizelim, çizdiğimiz kareyi movieclip haline getirelim.
    Üzerine çift tıklayarak karenin içine giriyoruz.
    Çift tıklayıp içerisine girdikten sonra, bu sefer karemize buton özelliği atıyoruz. F8'e basıp oradan buton'u işaretleyip ok tuşuna basıyoruz.
    Butona çevirdikten sonra, butonun üzerine sağ tıklayıp action panelini açıyoruz ve şu kodları içerisine yazıyoruz.
    on (release) {
    	tikla = getTimer();
    	gotoAndStop(5);
    }
    on (press) {
    	this.startDrag(false);
    }
    on (release) {
    	this.stopDrag();
    }
    Kodumuzu yazdıktan sonra paneli kapatıyoruz, 5. frame'e gelip tekrar f6 tuşuna basıyoruz ve keyframe oluşturmuş oluyoruz.
    Burada da butonun üzerine sağ tıklayıp, mevcut kodları silip yerine şunları yazıyoruz
    on (release) {
    	if (Number((getTimer()-tikla))<300) {
    		trace("Uygulama gerçekleşti.");
    	}
    	gotoAndStop(1);
    }
    Unutmadan 1. ve 5. frame'e stop(); ekliyoruz.
    Herşeyi doğru yaptığınızdan eminseniz, CTRL+Enter ile test edebilirsiniz.


    Download
  • 01-07-2008, 15:28:33
    #5
    Dersler gayet güzel teşekkürler devamını bekleriz.
  • 01-07-2008, 16:26:11
    #6
    Rica ederim;

    Bir butona iki görev atama çalışması

    --

    Yeni bir flash döküman oluşturun, içerisine bir tane kare çizin ve bunu movieclip haline getirip instance name'ini "mc" olarak belirtin.

    mc isimli movieclip'imize sağ tıklayıp action bölümü açın ve şu kodları girin.

    onClipEvent(enterFrame) {
    	this._rotation +=19;
    }
    // burada animasyon devam ettiği müddetçe karemiz kendi ekseni etrafında sürekli olarak dönecektir.

    Buraya kadar olan kısmı yapmış isek, bir tane buton oluşturalım ve oluşturduğumuz buton'a aşağıda ki kodları girelim.

    on(release) {
    	if(bk==undefined) {
    		bk=0;
    	}
    	if(bk==0) {
    		mc._visible = false;
    		bk=1;
    	}else{
    		if(bk==1) {
    			mc._visible = true;
    			bk=0;
    		}
    	}
    }
    Herşeyi doğru yaptığınızdan eminseniz, CTRL+Enter ile kontrol edebilirsiniz.

    Download
  • 06-07-2008, 17:16:59
    #7
    Mouse imlecini deaktif edip, sizin belirlediğiniz objenin mouse'i takip etmesini nasıl sağlarsınız?

    --

    Sahnemize mouse'i takip etmesini istediğiniz bir obje çizin (Örn: yıldız, kare, vs...) çizdiğimiz bu objeyi f8 ile movieclip haline getirin ve instance name'ini "mc" olarak belirleyin.

    Ana sahnemizde ki 1. frame'e şu kodları girin

    MovieClip.prototype.gitx = function(x1:Number, y1:Number) {
    	this.onEnterFrame = function() {
    		var deger:Number = (x1-this._x)/5;
    		var deger2:Number = (y1-this._y)/5;
    		this._x += deger;
    		this._y += deger2;
    		if (Math.round(this._x) == x1 && Math.round(this._y) == y1) {
    			this._x = x1;
    			this._y = y1;
    			delete this.onEnterFrame;
    		}
    	}
    }
    onMouseMove = function () {
    	mc.gitx(_xmouse, _ymouse);
    };
    Mouse.hide();
    onMouseUp = function() {
    	Mouse.show();
    };
    CTRL+Enter ile test edebilirsiniz.

    Download
  • 27-07-2008, 00:43:23
    #8
    İhtiyaç olabileceğini düşünerek;

    Günün sözü çalışması;

    Sahnenize bir tane dinamik text oluşturun, instance name'ine "yazi_txt" adını verin.
    Bu işlemi tamamladıktan sonra 1. frame'e aşağıda ki kodları girin.

    var sozler:Array=new Array("kelin ilacı olsa başına sürer", "laf lafi acıyormus", "sakla samanı gelir zamanı", "kıskanclıgın sonu felakettir",
    						   "sakla samanı acıkınca yersin","ak akçe kara kedi içindir","ilmi olmayanın fikri çok olurmuş");
    
    rasgele=random(sozler.length);
    yazi_txt.text=sozler[rasgele];
    Sözleri, dilediğiniz kadar arttırabilirsiniz. (başına ve sonuna çift tırnak koymayı unutmayınız)
  • 27-07-2008, 12:05:08
    #9
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Teşekkürler çalışmalar için.