ActionScript 3.0 ile Bitmap Filters

Yazan: Hakan Çamoğlu on Aralık 23rd, 2009

Yıllardır grafik programlarında fotoğraflar ve çizimler üzerine uyguladığımız blur, drop shadow vb. filtreleri ActionScript ile nasıl kullanırız.

Bitmap Filters
Filtrelerle çalışırken 2 farklı filtre kullanımından bahsedebiliriz: temel ve geliÅŸmiÅŸ… Photoshop’u ele alırsak temel filtreler hızlı bir ÅŸekilde kullanabileceÄŸimiz layer stilleri, geliÅŸmiÅŸ filtreler ise Photoshop’un Filters menusünde bulunan çok daha fazla sayıdaki filtrelerdir.

Bu yazıda ise temel filtreleri ele alacağım.

Temel Filtreler
Bu gruptaki filtreleri DropShadow, Blur, Glow, Bevel, GradientGlow ve GradientBevel olarak söyleyebiliriz.

ActionScript ile bu filtreleri kullanırken ilk önce filtreyi özellikleriyle beraber tanımalamalı ve daha sonra tanımladığımız bu filtreyi istediğimiz nesneye uygulamalıyız.

İlk örneğimiz bir DropShadow filtresi olacak. Çizmiş olduğumuz kare_mc örnek isimli kare sembolüne bir gölge ekleyeceğiz.

DropShadow Filtresi
Her ne kadar benim pek sevmediğim bir filtre de olsa DropShadow filtresi en çok kullanılan filtreler arasındadır.

200912_dropshadow

Bu filtreyi ActionScript ile kullanmak neredeyse grafik programlarında kullanmak kadar basittir. Yapılması gereken önce istediğimiz isimde bir filtre tanımlamak ve daha sonra bu filtreye görmek istediğimiz özellikleri eklemek.

DropShadow filtresinin tanımlayacağımız özellikleri şu şekildedir:

distance : konumu
blurX : x konumundaki fluluk deÄŸeri
blurY : y konumundaki fluluk deÄŸeri
alpha : görünürlük değeri

var ds:DropShadowFilter =
new DropShadowFilter();
ds.distance = 5;
ds.blurX = 10;
ds.blurY = 10;
ds.alpha = .6;

Filtremizi tanımladıktan sonra geriye sadece tanımladığımız bu filtreyi istediğimiz nesne de kullanmak kaldı. Bunu yapmakta son derece basittir.

kare_mc.filters = [ds];

İşte hepsi bu!
Artık kare sembolümüzde bir DropShadow etkisi oluşmuş durumdadır.

Blur Filtresi
En sık kullanılan ikinci filtre olarak blur filtresini söyleyebiliriz. Hatta benim için birinci sırada gelir :)

200912_blur

Bu örneği yapmak için ise brush tool ile rastgele bir çizim yapın.

Daha sonra yaptığınız bu çizimi MovieClip olarak sembole dönüştürdükten sonra cizim_mc örnek ismini vererek kod yazmaya hazır hale getirin.

var blur:BlurFilter = new BlurFilter(10, 10);
cizim_mc.filters = [blur];

Blur filtresini kullanırken değer olarak x ve y konumlarındaki fluluk değerini girmemiz yeterli olacaktır.

Glow Filtresi
Nesnelerin etrafında oluşturulan ışık etkisini Glow filtresi ile elde edebilirsiniz.

Bu filtreyi kullanmak içinde yine kare_mc isimli sembolü kullanabilirsiniz.

200912_glow

Glow filtresinde tanımlayacağımız özellikleri  ise şu şekildedir:

color : renk ayarı 0xrenkKodu şeklinde
blurX : x konumundaki fluluk deÄŸeri
blurY : y konumundaki fluluk deÄŸeri
alpha : görünürlük değeri

var gl:GlowFilter = new GlowFilter();
gl.color = 0xFF6600;
gl.blurX = 10;
gl.blurY = 10;
gl.alpha = .5;

kare_mc.filters = [gl];

Glow filtresinin kullanımı da aynı diğer filtreler gibidir.

Bevel Filtresi
Nesneler üzerine kabartma efekti uygulamak için ise Bevel Filtresini kullanabilirsiniz.

Bu filtre içinde yine kare_mc isimli sembolü kullanacağız.

200912_bevel

Bevel filtresinde ise hiçbir özellik tanımlamadan direk filtreyi kullanacağız. Böylece filtrenin varsayılan değerlerini kullanarak oluşan etkiden yararlanacağız.

var bevel:BevelFilter = new BevelFilter();

kare_mc.filters = [bevel];

Hiçbir değer vermediğiniz takdirde kullandığınız filtrenin varsayılan değerleri karşınıza çıkaraktır.

ActionScript 3.0 ile videolarda cuePoint kullanımı

Yazan: Hakan Çamoğlu on Aralık 17th, 2009

ActionScript 3.0 ile cuePoint kullanarak videoların istediğiniz bir bölümüne gelindiğinde uygulamanıza farklı işlemler yaptırabilirsiniz.

Bunu yapmak için öncelikle sahneye bir tane FLVPlayback bileşeni ekleyin ve buna oynatici örnek ismini verin.

Kod aÅŸamasında ilk olarak FLVPlaybak’e video dosyamızı gösteriyoruz ve cuePointleri tanımlıyoruz. Daha sonra herhangi bir cuePoint’e geldiÄŸini algılaması için bir olay iÅŸleyici tanımlayarak istediÄŸimiz iÅŸlemleri yaptırıyoruz.

oynatici.source = “test.f4v”;
oynatici.addASCuePoint(1.345,”birinci”);
oynatici.addASCuePoint(3.450,”ikinci”);

function listener(e:Object):void {
trace(e.info.name);
}
oynatici.addEventListener(”cuePoint”, listener);

Flash CS4′te dosyayı kaydedince ActionScript kodların çalışmaması!

Yazan: Hakan Çamoğlu on Ekim 15th, 2009

Bugün MEB projesinde yer alan eğitmenlerimizle yaptığımız ders sırasında karşılaştığımız bu sorun beni çok şaşırttı. Flash CS4 ile açtığımız dosyalarda herhangi bir ActionScript kod yazdığımızda sorunsuz çalışıyordu. Ancak dosyayı kadettiğimiz anda çalışan kodun bir anda çalışmadığını fark ettik.

Flash CS4 ile hazırladığınız ActionScript uygulamasının dosyayı kaydedince çalışmamasının sebebini biraz uğraş sonucunda çözdük. Eğer Flash dosyanızı sürücünün ana dizinine ( Örn. D:\ ) kaydederseniz yazdığınız ActionScript kodlar çalışmaz hale geliyor. Ancak dosyayı sürücüde bir klasör açıp onun içine kaydettiğinizde bu sorundan kurtulmuş oluyorsunuz.

Sorunun bu ÅŸekilde çözülebileceÄŸi pek akla gelmeyeceÄŸi için paylaÅŸmak istedim…

ActionScript 3.0 ile Gelişmiş Ses Kontrolü-2

Yazan: Hakan Çamoğlu on Eylül 23rd, 2009

Gelişmiş Ses Kontrolü

Web sitelerinde kullandığınız seslerin sitenizi yavaşlatmasına izin vermeyin ve kullanıcıya gelişmiş kontrol imkanı vererek sitenizi gezerken keyif almasını sağlayın.

var ses:Sound = new Sound();
var adres:URLRequest = new URLRequest(”sound.mp3″);
var sesKontrol:SoundChannel = new SoundChannel();
var sesDuzeyi:SoundTransform = new SoundTransform();
ses.load(adres);

ses.addEventListener(Event.COMPLETE, baslat);
function baslat(event:Event) {
sesKontrol = ses.play(0,999);
ac_btn.visible = false;
}

kapat_btn.addEventListener(MouseEvent.CLICK, sesKapat);
function sesKapat(event:MouseEvent) {
sesKontrol.stop();
ac_btn.visible = true;
}

ac_btn.addEventListener(MouseEvent.CLICK, sesAc);
function sesAc(event:MouseEvent) {
sesKontrol = ses.play(0,999);
ac_btn.visible = false;
}

eksi_btn.addEventListener(MouseEvent.CLICK, sesAzalt);
function sesAzalt(event:MouseEvent) {
if (sesDuzeyi.volume > 0) {
sesDuzeyi.volume -= 0.1;
sesKontrol.soundTransform = sesDuzeyi;
maske_mc.x -= 6;
}
}

arti_btn.addEventListener(MouseEvent.CLICK, sesArttir);
function sesArttir(event:MouseEvent) {
if (sesDuzeyi.volume < 1) {
sesDuzeyi.volume += 0.1;
sesKontrol.soundTransform = sesDuzeyi;
maske_mc.x += 6;
}
}

maske_btn.addEventListener(MouseEvent.MOUSE_DOWN, surukle);
function surukle(event:MouseEvent){
maske_mc.startDrag(true, new Rectangle(-30,maske_mc.y,60,0));
}

stage.addEventListener(MouseEvent.MOUSE_MOVE, ayarla);
function ayarla(event:MouseEvent){
sesDuzeyi.volume = (maske_mc.x+30)/60;
sesKontrol.soundTransform = sesDuzeyi;
}

stage.addEventListener(MouseEvent.MOUSE_UP, birak);
function birak(event:MouseEvent){
maske_mc.stopDrag();
}

Örnek dosyayı buradan indirebilirsiniz.

ActionScript 3.0′da releaseOutside Olayını Kullanmak

Yazan: Hakan Çamoğlu on Eylül 20th, 2009

ActionScript 2.0 da hazırladığımız birçok uygulamada hatalardan kurtulmak için releaseOutside olayını kullanırdık. Ancak ActionScript 3.0 da bu olay artık kullanılmıyor.

Peki biz bu olayı kullanmadan oluşabilecek problemleri nasıl çözeriz?
İş size cevabı…

test_btn.addEventListener(MouseEvent.MOUSE_DOWN, surukle);
function surukle(event:MouseEvent){

}

stage.addEventListener(MouseEvent.MOUSE_UP, birak);
function birak(event:MouseEvent){

}

MOUSE_UP olayını stage üzerinde tanımlayarak bir nevi releaseOutside elde etmiş oluyoruz. Buton üzerinden çıktıktan sonra sahnenin herhangi bir yerinde fare bırakıldığında artık birak fonksiyonumuz çalışacaktır.


Copyright © 2007 ActionScript Türkiye. All rights reserved.