Burada yalnızca Kod var. Kendi başına dönen Merkez Noktası

Flash - Burada yalnızca Kod var. Kendi başına dönen Merkez Noktası ...

Cevapla
Burada yalnızca Kod var. Kendi başına dönen Merkez Noktası
muratcdemirci isimli Üye şimdilik offline konumundadır

muratcdemirci

Grafiker / İstanbul

Dosya19

Burada yalnızca Kod var. Kendi başına dönen Merkez Noktası

Alt 25-03-2010 #1
Sponsorlu Bağlantılar

Rotasyon, nesnelerin belirli bir noktaya göre yatay eksenle yaptığı açısının değiştirilmesi durumudur.

Rotasyonun referans aldığı noktayı manuel olarak değiştirip nesneyi belirli bir noktaya göre döndürebirilirz.

Bunu kodlamalarla yapmak istediğimizde ise dönme noktasını direkt veya indirekt olarak değiştirme gibi birkaç yöntem bize yardımcı olacaktır.

Mesela nesneyi bir klip içine koyup daha sonra dışardaki klibin rotasyonunu değiştirmek.

Bu yolla içerdeki nesnenin x ve y koordinatlarını değiştirerek içteki klibin dönme noktasını değiştirmiş gibi oluruz.

Başka bir yöntem olarak, nesnenin x ve y konumlarını trigonometrik olarak sinus ve kosinüs değişkenleri ile orantılandırıp yüzünü de (aradaki açının değerini rotasyona atayarak) merkez noktaya çevirirsek yine dönme noktasını değiştirebilme şansımız olur.

Bunlardan başka mutlaka çok yöntem vardır ama benim son belirtmek istediğim yöntem MatrixTransformer sınıfını kullanarak yapılan dönme merkez noktası değişimidir.

Bu yazıda bu son yöntemin üzerinde duracağız.

Öncelikle yapacağımız uygulamaya bakalım;

ÖNİZLEME İÇİN TIKLAYINIZ.




Görüldüğü gibi nesne mouse tıklamasıyla değiştirilebilen bir odak noktaya göre dönüyor.

Bunu yapabilmek için aşağıdaki, açıklamaları aynı satırda verilmiş olan kodları kullanıyoruz
(objeler kodla oluşturuşuyor, dolayısıyla sadece kodları eklemeniz yetecek)

Tek yapmanız gereken yeni bir ActionScript 3.0 dosyası açmak ve F9 komutuyla Action Script panelini açıp aşağıdaki kodları oraya yapıştırmak.

import fl.motion.MatrixTransformer;/*sınıfı çekiyoruz*/

var kare:Shape=new Shape();/*dönme noktası ile oynayacağımız dörtgeni çiziyoruz*/
kare.graphics.beginFill(0x79899F,1)/*dolgu rengi, alpha*/
kare.graphics.lineStyle(1, 0x58677C);/*çizgi kalınlığı, rengi*/
kare.graphics.drawRect(stage.stageWidth/2-30, stage.stageHeight/2-30, 60,60);/*sahnenin ortasına bir kare*/
kare.graphics.endFill();/*dolgu bitti*/
addChild(kare);/*sahneye eklendi*/

var odak:Shape=new Shape();/*odak noktasını belirteceğeimiz daireyi çiziyoruz*/
odak.graphics.beginFill(0xffffff,.3)
odak.graphics.lineStyle(1, 0xC9C8BE);
odak.graphics.drawCircle(0, 0, 3);
odak.graphics.endFill();
odak.x=stage.stageWidth/2;odak.y=stage.stageHeight/2
addChild(odak);

stage.addEventListener(Event.ENTER_FRAME, calis);/*enterframe fonksiyonunu atıyoruz*/
var m:Matrix = new Matrix();/*matrixTransformer'da kullanacağımız matrix'i tanımladık*/
function calis(e:Event){/*fonksiyonu yazıyoruz*/
MatrixTransformer.rotateAroundExternalPoint(m, odak.x, odak.y, 5);/*rotateAroundExternalPoint, klibi belirlenen noktalarla döndürmek için kullanılıyor.
Kodda 5 değeri verdiğimiz kısım dönme açısıdır, her frame de mevcut rotasyona bu değer katılıyor. arttırırsak hızlı döner, negatif değer verirsek ters yöne döner.*/
kare.transform.matrix = m;/*karenin transform matrix'ini bizim matrixe eşitliyoruz*/
}
stage.addEventListener(MouseEvent.MOUSE_DOWN,tik);/*odak koordinatlarını mouse tıklamasına göre ayarlıyoruz*/
function tik(e:MouseEvent) {
odak.x=mou***
odak.y=mouseY
}


Test için Ctrl+Enter

Bir sonraki derste görüşmek üzere.
Bu mesajdan alıntı yap
Sponsor Links

Grafikerler.net Reklamları

nopelix isimli Üye şimdilik offline konumundadır

nopelix

Öğrenci (Grafik) / İstanbul

Standart
Alt 13-04-2010 #2
                             Sponsorlu Bağlantılar
güzel bi paylaşıma benziyo ama bende çalışmadı yhaa :s
Bu mesajdan alıntı yap
muratcdemirci isimli Üye şimdilik offline konumundadır

muratcdemirci

Grafiker / İstanbul

Dosya19
Alt 13-04-2010 #3
güzel bi paylaşıma benziyo ama bende çalışmadı yhaa :s
Karşılaştığınız hata nedir peki? Normal şartlarda hiçbir hata olmaması gerekiyor.
Bu mesajdan alıntı yap
Cevapla

Benzer Konular
Konu Konu Bilgileri Forum Cevaplar Son Mesaj
Yalnızca dergi-gazete tasarımı hgunturk Sonuçlanan İlanlar 11 06-12-2009 18:56:55
Bu Dünyada Tek Başına Bir Erkek, Bir Hiçtir By-SadoMazo$isT Afiş Tasarımı 9 09-08-2009 13:03:55
Kendi etrafında 360derece dönen bir harf nasıl yapılır ? oguzhan10 Photoshop Soru ve Sorunlarınız 1 03-03-2009 13:19:02
Pc Kendi Başına Windows Kursun MONASTERY Windows 3 02-05-2008 18:42:17

Kapat
Şifremi Unuttum?