17 Ağustos 2009 Pazartesi

Document Class ile Sürükle Bırak Örneği

bu bölümde fla dosyamızda Document Class ile sürükle bırak örneği yapacağız. Fla 'da 3 adet mc miz olsun (kutu1_mc,kutu2_mc,kutu3_mc) ve bunların sürükleneceği 3 adet yer olsun (yer1_mc,yer2_mc,yer3_mc) ve bunları birbirinin üzerine sürükleyip bırakalım 1-1 e 2-2 ye 3-3 e sürüklenip bırakılacak.
Önce nesneleri fla'da oluşturalım Properties' kısmında Document Class Kısmına . as dosyamızın sadece adını yazalım.(suruklebirak) ve fla ile oluşturacağımız suruklebirak.as dosyamız yanyana olsun.

Şimdi File--> New--> Action Script File ile classımızı yazalım.
// bu .as dosyası 3 adet nesneyi 3 yere sürükleyip bırakır doğru yerine gittiğinde gidilenin x ve ysine eeşitler
// yanlışsa eski yerlerine gider
package {
import flash.events.MouseEvent;
import flash.display.MovieClip;
/**
$(CBI)* ...
$(CBI)* @author ismail arslan
$(CBI)*/
public class suruklebirak extends MovieClip {

public var eskix:Array = new Array();
public var eskiy:Array = new Array();
public var suruklenen:Array=new Array("kutu1_mc","kutu2_mc","kutu3_mc");
public var yerler:Array=new Array("yer1_mc","yer2_mc","yer3_mc");
// not kutu1mc nin karşılığı yer1_mc olacaktır. ona göre ayarla
//*********************************************************************
public function suruklebirak():void {
trace("suruklenen");
for (var i:uint=1; i< suruklenen.length; j++) {
eskix.push(Math.floor(root[suruklenen[j]].x));
eskiy.push(Math.floor(root[suruklenen[j]].y));

}// for sonu
trace(eskix,"y= " ,eskiy);
}// function sonu ***************************************************

public function Surukle(e:MouseEvent) {
e.currentTarget.startDrag(false);
}// function sonu
// ************************************************** Birak başı
public function Birak(e:MouseEvent) {
e.currentTarget.stopDrag();
var ad:String=e.currentTarget.name;
trace(ad);
var suruklenenno:uint=Number(ad.substr(4,1));
// trace(suruklenenno,"suruklenenein numarası");
// trace(yerler[suruklenenno-1]);
if (e.currentTarget.hitTestObject(root[yerler[suruklenenno-1]])) {
trace("doğru");
e.currentTarget.x=root[yerler[suruklenenno-1]].x;
e.currentTarget.y=root[yerler[suruklenenno-1]].y;

} else {
trace(eskix[0]);
e.currentTarget.x=eskix[suruklenenno-1];
trace(e.currentTarget.x);
e.currentTarget.y=eskiy[suruklenenno-1];

}
}// ************************************************** function sonu

}

}

Hiç yorum yok: