Fare tıklatmaları etkileşim işlevlerini tetiklemek için kullanılabilecek fare olayları oluşturur. SWF dosyasının herhangi bir yerinde oluşan fare olaylarını dinlemek için Sahne alanına bir olay dinleyici ekleyebilirsiniz. Ayrıca Sahne alanı üzerindeki InteractiveObject öğesinden miras alan nesnelere (Sprite veya MovieClip gibi) de bir nesne tıklandığında tetiklenecek olay dinleyici ekleyebilirsiniz.
Kabarcık sıralaması klavye olayları için olduğu gibi fare olayları için de geçerlidir. Aşağıdaki örnekte
square
Sahne alanının alt öğesi olduğundan kareye tıklandığında olay hem
square
hareketli grafiğinden hem de Sahne alanı nesnesinden gönderilir.
var square:Sprite = new Sprite();
square.graphics.beginFill(0xFF0000);
square.graphics.drawRect(0,0,100,100);
square.graphics.endFill();
square.addEventListener(MouseEvent.CLICK, reportClick);
square.x =
square.y = 50;
addChild(square);
stage.addEventListener(MouseEvent.CLICK, reportClick);
function reportClick(event:MouseEvent):void
{
trace(event.currentTarget.toString() + " dispatches MouseEvent. Local coords [" + event.localX + "," + event.localY + "] Stage coords [" + event.stageX + "," + event.stageY + "]");
}
Bir önceki örnekte fare olayının tıklatma ile ilgili konum bilgisi içerdiğine dikkat edin.
localX
ve
localY
özellikleri görüntüleme zincirindeki en alt öğenin tıklanma konumunu içerir. Örneğin,
square
öğesinin sol üst köşesine tıklandığında
square
öğesinin kayıt noktası olan [0,0] yerel koordinatları rapor edilir. Ayrıca
stageX
ve
stageY
özellikleri Sahne alanı tıklatmasının genel koordinatlarına başvurur. Aynı tıklatma bu koordinatlar için [50,50] rapor eder çünkü
square
öğesi bu koordinatlara taşınmıştır. Bu koordinat çiftlerinin her ikisini de kullanıcı etkileşimine nasıl yanıt vermek istediğinize bağlı olarak kullanabilirsiniz.
Not:
Tam ekran modunda, fare kilidini kullanmak için uygulamayı yapılandırabilirsiniz. Fare kilidi, imleci devre dışı bırakır ve sınırsız fare hareketini etkinleştirir. Daha fazla bilgi için bkz.
Tam ekran modunda çalışma
.
MouseEvent nesnesi ayrıca
altKey
,
ctrlKey
ve
shiftKey
Boolean özelliklerini de içerir. Bu özellikleri fare ile tıklanırken Alt, Ctrl veya Shift tuşlarına da basılıp basılmadığını kontrol etmek için kullanabilirsiniz.
Sprite'ları sahne alanı etrafında sürükleme
Sprite sınıfının
startDrag()
yöntemini kullanarak kullanıcının, bir Sprite nesnesini sahne alanı çevresinde sürüklemesini sağlayabilirsiniz. Aşağıdaki kod bu işleve bir örnektir:
import flash.display.Sprite;
import flash.events.MouseEvent;
var circle:Sprite = new Sprite();
circle.graphics.beginFill(0xFFCC00);
circle.graphics.drawCircle(0, 0, 40);
var target1:Sprite = new Sprite();
target1.graphics.beginFill(0xCCFF00);
target1.graphics.drawRect(0, 0, 100, 100);
target1.name = "target1";
var target2:Sprite = new Sprite();
target2.graphics.beginFill(0xCCFF00);
target2.graphics.drawRect(0, 200, 100, 100);
target2.name = "target2";
addChild(target1);
addChild(target2);
addChild(circle);
circle.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown)
function mouseDown(event:MouseEvent):void
{
circle.startDrag();
}
circle.addEventListener(MouseEvent.MOUSE_UP, mouseReleased);
function mouseReleased(event:MouseEvent):void
{
circle.stopDrag();
trace(circle.dropTarget.name);
}
Ayrıntılar için,
Konum değiştirme
başlığı altındaki sürükleyip bırakma etkileşimi oluşturmayla ilgili bölüme bakın.
AIR uygulamasında sürükleme ve bırakma
Adobe AIR uygulamasında kullanıcılara, verileri uygulamanıza sürüklemek ve uygulamadan çıkarmak için sürükle ve bırak desteği sağlanmıştır. Ayrıntılar için bkz.
AIR uygulamasında taşıma ve bırakma
.
Fare imlecini özelleştirme
Fare imleci (fare işaretçisi) Sahne alanı üzerindeki herhangi bir görüntüleme nesnesi için gizlenebilir veya değiştirilebilir. Fare imlecini gizlemek için
Mouse.hide()
yöntemini çağırın.
Mouse.hide()
yöntemini çağırıp
MouseEvent.MOUSE_MOVE
olayı için Sahne alanını dinleyerek ve bir görüntüleme nesnesinin (özel imleciniz) koordinatlarını olayın
stageX
ve
stageY
özelliklerine ayarlayarak imleci özelleştirebilirsiniz. Aşağıdaki örnek bu görevin oluşturulması için temel kodu gösterir:
var cursor:Sprite = new Sprite();
cursor.graphics.beginFill(0x000000);
cursor.graphics.drawCircle(0,0,20);
cursor.graphics.endFill();
addChild(cursor);
stage.addEventListener(MouseEvent.MOUSE_MOVE,redrawCursor);
Mouse.hide();
function redrawCursor(event:MouseEvent):void
{
cursor.x = event.stageX;
cursor.y = event.stageY;
}
|
|
|