Tüm tarayıcılar için transparan özelliği

CSS3 ile birlikte bir çok özelliği kullanabiliyorduk. Ancak bu kod tüm tarayıcılarda kullanabiliyoruz.

.transparent {
filter:alpha(opacity=50); /*IE*/
-moz-opacity:0.5; /*Netscape*/
-khtml-opacity: 0.5; /*Webkit*/
opacity: 0.5; /*Firefox,Safari,Opera*/
}

Advertisements

Kutuları tweenlerle sıralamak

Bir foto galerisi yapıyoruz ve kutuların ne preloader şeklinde gelmesini istiyoruz ne de alpha tint vs. daha farklı bir yapıyı kullanmak için bir kolon mantıgı yaparız ve tweenler ile x değerini kolonların sayısı kadar veriririz. Daha sonra kolonlarımızın sayısı arttıkça bir delay vererek kareleri yan yana sıralarız.

Kareleri yan yana sıralamak

Modül işlemini kullanarak yapabiliriz. For döngüsüne soktuğumuz değer ile belirlediğimiz kolon sayısının modülünü alırız. Bu bizim ilk değerimiz, daha sonrasın da ise çarpma  işlemi kullanarak kutumuzu sağa doğru ilerletiriz (kolon sayımız kadar) bir örnekle açıklık getirmek gerekirse.

For döngüsüne soktuğumuz değerleri bizim belirlediğimiz sınır sayısı  kadar artar sınıra geldiğinde verdiğimiz koşul süresince durur yani biz döngü koşulumuzda 10 da dursun dersek sayımız 0 dan başlayıp 9 kadar sürer. Programcılıkda her zaman  indeks değeri 0 dır. Bunu düşünürsek eğer. 0 % 5 = 0  , 1 % 5 = 1 , 2 % 5 = 2 , 3 % 5 = 3 şeklinde işlemler yapılır. Modüller bizim bölme işleminden artan sonucu vermektedir. Dikkat ettiyseniz çıkan değil artan! Biz 10  / 2 dediğimiz 5 sonucunu verir ancak mödül işleminde bu farklı eğer mödül kullanırsak bu değer 0 olur çünki artan bir değer yok ama 13 % 2 dersek değer 1 olur çünki bölmeden artan değer var bu da bir.  Çarpma işlemindeki amaç ise şu şekildedir.

Mödülden çıkan sonuç  = 2  * (kare genişliği) 50 yani 2 x 5 = 100 bu demek oluyor ki karemiz 100 pixel sağa doğru gitsin.

Kareleri alt alta sıralamak

Aslına bakarsak yukarıdaki metodla aynıdır bir fakrı var yine bölüyoruz ancak kalan değeri değil direk olarak bölüneni alıyoruz. Yani (1 / 5) çıkan sonuç 0.2 ondalıktan kurtularak yani .2 den kurtularak asıl sayımızı alıyoruz yani 2 değerini bunuda aynı şekilde çarparak değerlerini y koordinant sistemine uyarlıyoruz. Aşağıda kodun bir örneği mevcut.. Umarım faydası olmuştur ve anlatabilmişimdir kolay gelsin 🙂

Not!: Bu uygulamayı yapabilmek için ilk olarak sahneye bir adet dikdortgen ya da istediğiniz bir şekilde olabilir sağ tıklayarak ya da f8 kısayol tuşunu kullanarak Export for ActionScript tıklayın. Daha sonra Box ismini verin aşağıdaki kodları uygulayın.

Over Out Alpha işlemi

Bu işlemde iki bloklu şekilde moviecliblerimiz var sağ kısımda mcler yani alpha uygulayacağımız alan diğerinde ise butonlar mevcut. Yapacağımız olay şu şekilde olacak soldaki butonların üzerine geldiğimizde sağdaki buton ile eşleşecek btn1 = mc1 şeklinde alphası düşecek.

Aşağıda substr ilemi ile eventten gelen yani üzerin tıkladığımız butonların ismini alıyoruz. btn0 şekilde geldiği için substr ile harf harf bölerek işlemler gerçekleştiriyoruz. Yani programcılıkta birincil sayı olarak 0 oldugunu varsayarsak btn 0,1,2 sayıyı alabilmek içinse 3 rakamını kullanacağız. Bunu yapmamızın amacı hedefteki buton ile mclerimizi eşitlemek bu sayede eğer btn1 e tıklıyorsak alphasını kısaltmak istediğimiz mc ise img1 olacaktır. Umarım açıklayıcı olmuşumdur :/

ContextMenu ile Sağ Tıklama menüsü

Web sitelerde interaktiviteyi arttırmak için çeşitli metodlardan birisidir.

var rightClick:ContextMenu = new ContextMenu();
rightClick.hideBuiltInItems();

var click1:ContextMenuItem = new ContextMenuItem(“Anasayfa”);
var click2:ContextMenuItem = new ContextMenuItem(“Hakkımda”);

rightClick.customItems.push(click1,click2);
contextMenu = rightClick;

click1.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT,menu1tiklandi);

function menu1tiklandi(event:ContextMenuEvent):void
{
 trace(“1. sağ tıklandı.”);
}

Burada karıştırılmaması gereken 2 nokta var bunlardan 1.cisi rightClick ile belirlediğimiz değişken ile aşağıda oluşturduğumuz click1 metodunun karıştırılmaması birisi ContextMenu yani sağ tık için oluşturduğumuz ikincisi ise sağ tıklamaya isim verdiğimiz ContextMenuItem dir. Yani birisini sağ tıklama olayını aktif etmek için kullanıyoruz ( ContextMenu ) diğerinde ise sağ tıklama elemanlarını(items) lerini oluşturuyoruz (ContextMenuItem). bu kadar. 

SetInterval Kullanımı

SetInterVal bizim belirlediğimiz süre zarfında istediğimiz herhangi bir fonksiyonu çalışırır. Örneğin biz 1 saniye bir fonksiyonumuzun çalışmasını istiyorsak bunun için kullanacağımız iki yöntemden birisi SetInterVal diğeri ise Timer sınıfı. Ben SetInterValı tercih ediyorum.

function topuOynat():void
{
top_mc.y+= 1;
}

setInterval(topuOynat, 1000);

buradaki bin değeri bir saniyeye tekabul eder.  Her bir saniyede bir topumuz  1px artarak aşağıya doğru ilerler.

Basit bir örnekle pekiştirmek gerekirse…

function alert()
{
addEventListener(Event.ENTER_FRAME, topuOynat);
}

setInterval(alert,1000);

function topuOynat(event:Event):void
{
ball.y += 1;
}

Hoş bir blurfilter efekti

var logo:MyLogo = new MyLogo();
addChild(logo);

var blurFilter:BlurFilter = new BlurFilter(8,8,3);

var bmd:BitmapData = new BitmapData(550,400,true,0x000000);
var bm:Bitmap = new Bitmap(bmd);
addChild(bm);

function moveSero():void
{
 TweenMax.to(logo,1,{
    
     x: Math.random() * 550,
     y: Math.random() * 400,
     rotation: Math.random() * 250,
     onComplete: moveSero
    
    });
}

moveSero();

addEventListener(Event.ENTER_FRAME,loop);

function loop(event:Event):void
{
 bmd.draw(this);
 bmd.applyFilter(bmd,bmd.rect,new Point(0,0),blurFilter);
}

Function’larda Arguments kullanımı

Değerlerini belirlediğimiz functionlara belirlediğimiz değerleri girebiliyorduk. Misal eğer biz number bir değer belirlediysek function parametresine functiona geri yollayacağımız değer kesinlikle number bir değer olmalıdır. Aynı şekilde eğer movieclip ya da String bir değer yolluyor ise aynı şekilde bu parametrede string bekliyor demektir. Ama arguments sayesinde biz veri türünü belirtmeden istediğimiz kadar parametre gönderebiliyoruz. Ne türünü belirtiyoruz ne de kaç tane parametre alacağını ne kadar güzel değil mi =) Şimdi arguments functionında … değeri istediğimiz sayıda parametre ve farklı türde veri oluşturabileceğimizi gösterir bize. Bi örnekle basite indirgeyelim =)

function argKullanim( ... args ):void
{
      var islemYap:* = args[0] + " > " + args[1];
      trace(islemYap);
}

argsKullanim("serhat",19);

Yukarıda oluşturduğumuz (… args) buradaki args değimi bizim kendi isteğimizle oluşturduğumuz bir değer. Bu değer ahmet olur mehmet veli abuzer vs. vs.. =) daha sonra aşağıda işlem yapmasını istedik farkındaysanız islemYap sabitine * (yıldız) ile bütün değişkenleri alsın dedik yani farklı bir değişken belirtmedik number ve string gibi… Bu sayede biz aşağıda kırmızı ile belirttiğimiz yerde parametrelere istediğimiz değerleri atarız virgülle misal(“serhat”,19,1905,”çiğ köfte”,”balık”,true,ozelDegiskenim) gibi… ama ozaman yine functionın içinde verdiğimiz trace metodu 0 ile  1 indexsine sahip değerleri döndürür hepsine ulaşmak istersek evet evet tabii kir for döngüsü =)

function argKullanim( ... args ):void
{
  for(var i:Number=0; i<args.length; i++)
    {
      var islemYap:* = args[i] + args[args.length - 1]; //son değerini alır.
      trace(islemYap);
    }
}

argsKullanim("serhat",19,true,ozelDegiskenimArray,"Turşu",true,"Kaşarlı dürüm",true); gibi... =)

Sahnedeki Objeyi Ortalama

Projelerimizde kodlar ile objelerimizi ortalamak isteyebiliriz. İşte bu durumda matematiksel işlemler yapmak zorunda kalacağız. Ya da stage de objenin x ve y konumunu sahneye ortalancak şekilde ayarlarız ve x , y değerlerini alır kod içerisinde bunları uygulamamıza aktarırız. Ancak bu şekilde sahne resize edilir ise obje konumlandırdığımız yani resize ettiğimiz sayfanın x ve y konumunda olmaz bu ve bu gibi durumlarda stagein değerlerini almamız gerekir. Aşağıda bir örnekle açıklayalım =)

Yapacağımız işlemde sahnenin(stage) değerini 0.5 ile çarpıcaz. Bu sayede elde ettiğimiz sonuç bizim x konumumuz olacak. Şöyle ki;
Matematikte her zaman 0 elemanı yutan elemandır. Yani 220 * 0,5 ise değer 22 * 5 olarak çarpılır.

mc.x = stage.stageWidth * 0.5;
mc.y = stage.stageHeight * 0.5;

Benim sahnemin genişlik ve yükseklik değerleri 550 x 400 şimdi bu işlemlerin nasıl yürüdüğüne bir göz atalım.

550 x 0.5 = 275
sıfırlar gider…
55 x 5 = 275 gibi aynı işlem y koordinantında da geçelidir.

400 x 0.5  = 200
sıfırlar yine gidiyor.
44 x 5 = 200

Olayı daha iyi kavraya bilmek için objenizi yani movieclibinizi align panelinden stagei baz alarak ortalayın dikeyde ve yatayda sonra bunların yanlarına line tool ile çizgiler çizin sonra bu objenizi sahnenin dışana çıkartarak ctrl+enter ile çalıştırın… Kolay Gelsin… =)

İç içe fonksiyon

Yaptığımız büyük çaplı olsun ufak çaplı olsun performans açısından farklı yollara gideriz. 10 adet fonksiyon oluşturup sadece bir olayı kontrol etmek anlamsız işte bu yüzden iç içe fonksiyonlar işimize yarayacak.

function AnaFonksiyon():String
{
 function AltFonksiyon1():String
 {
 return "Serhat";
 }

 function AltFonksiyon2():String
 {
 return "Sezer";
 }

 return AltFonksiyon1() + AltFonksiyon2();

}

trace(AnaFonksiyon());

Burada AnaFonksiyon bi değer bekliyordu… Bizde AltFonksiyonlar ile buna değerlerini yolladık return ile sonra bu olaylar AnaFonksiyon() içinde saklandı trace ile bunu output paneline yazdırdık.