as3 Objelere aktif-pasif atama (enabled – disabled)

Flash projelerimizde bir butona tıkladığımızda animasyonumuzu çağırabiliriz. Daha sonrasında aynı butona tekrar basıldığında yani aralıksız basıldığında animasyonumuzda kopukluk olacak ve cpu yoracaktır. Bunu engelleyebilmek için projelerimizde enable – disable özelliğini kullanırsak bu sorundan kurtulmuş oluruz.
Örneğin sahnemizde 2 adet butonumuz var isimleri fark etmez ben btn0,btn1 verdim. Daha sonrasında bunları aktif ve pasif etmek içinde bir değişken atadım. Bu değişken o an hangi butona tıklandıysa onun değerini alacak. Genel buton kapsayıcı = aktif buton şeklinde olacaktır. Eğer bizim Genel buton kapsayıcımız tanımsız ise(null) değerine sahip ise butonumuzu Genel buton kapsayıcısıyla = aktif butona eşitliyoruz ve butonlarımızı disable(pasifleştiriyoruz). Eğer değilse aktifleştiriyoruz.

import flash.events.MouseEvent;
import flash.display.MovieClip;

var currentBtn:MovieClip;

btn1.buttonMode = true;
btn1.addEventListener(MouseEvent.CLICK,clickItem);
btn2.buttonMode = true;
btn2.addEventListener(MouseEvent.CLICK,clickItem);
btn3.buttonMode = true;
btn3.addEventListener(MouseEvent.CLICK,clickItem);


function clickItem(event:MouseEvent):void
{
	if (currentBtn != null)
	{
		currentBtn.mouseEnabled = true;
		currentBtn.buttonMode = true;
		currentBtn.mouseChildren = true;
		currentBtn.alpha = 1;
	}
	
	currentBtn = event.target as MovieClip;

	currentBtn.mouseEnabled = false;
	currentBtn.buttonMode = false;
	currentBtn.mouseChildren = false;
	currentBtn.alpha = .5;
}
Advertisements