好了,我的問題,以及特定的時間在那裏發生,我有一個DisplayObject在底部,這是可以點擊的,有一個懸停狀態,一個文本字段下方。最大的問題是,我需要所有MouseEvents去他們兩個,不只是文本字段,而不是僅僅的DisplayObject。原因在於我的文本需要將工具提示附加到位於下方DisplayObject頂部的鼠標。的ActionScript鼠標事件的多個項目
package
{
import flash.display.InteractiveObject;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.geom.ColorTransform;
import flash.text.TextField;
[SWF(width="400", height="400", frameRate="24", backgroundColor="#EEEEEE")]
public class tester2 extends Sprite
{
protected var cTransform:ColorTransform;
protected var rect:Sprite;
protected const RECT_ON_COLOUR:uint = 0xFF0000;
protected const RECT_OFF_COLOUR:uint = 0x0000FF;
protected var text:TextField;
protected const TEXT_ON_COLOUR:uint = 0xFFFFFF;
protected const TEXT_OFF_COLOUR:uint = 0x000000;
public function tester2()
{
rect = new Sprite();
rect.graphics.lineStyle(1);
rect.graphics.beginFill(RECT_OFF_COLOUR, 0.8);
rect.graphics.drawRect(10, 10, 100, 100);
rect.graphics.endFill();
add(rect);
text = new TextField();
text.text = "TextField";
text.selectable = false;
text.height = 30;
text.x = text.y = 13;
text.textColor = TEXT_OFF_COLOUR;
add(text);
cTransform = new ColorTransform();
}
protected function add(item:InteractiveObject):void {
addChild(item);
item.addEventListener(MouseEvent.MOUSE_MOVE, onMouseEvent);
item.addEventListener(MouseEvent.MOUSE_OUT, onMouseEvent);
}
protected function onMouseEvent(e:MouseEvent):void {
setColour(e.target, (e.type == MouseEvent.MOUSE_MOVE));
}
protected function setColour(item:Object, over:Boolean):void {
if(item == rect) {
cTransform.color = (over? RECT_ON_COLOUR: RECT_OFF_COLOUR);
rect.transform.colorTransform = cTransform;
}
else {
text.textColor = (over? TEXT_ON_COLOUR: TEXT_OFF_COLOUR);
}
}
}
}
這裏你可以看到上面的例子中的影響, http://seadersforums.appspot.com/static/4stack/multiple_mouse_events/index.html
現在,我想迫使發生的是,當你的鼠標在任何文本區域,文本拿起事件,以及任何其他鼠標事件,以及下面的DisplayObject。換一種說法,我想要吃我的蛋糕,也要吃。我希望文本按照它在這個例子中的方式行事,但也要讓它在我的文本上使mouseEnabled等於false的情況下工作。
我問過類似的問題,此前有關的位圖,儘管在不同的情況下,最終以parent.getObjectsUnderPoint ...的解決方案,這是不太理想去了。如果這是我唯一的選擇...我會不情願地再次走那條路,但我很想找到一個更好的解決方案,並真的認爲必須有,只要我能克隆的情況下向下行到下一個孩子在那個時候。
感謝您提供任何幫助。
呀,我不認爲我解釋什麼,我想正確的。鼠標在文本上發生了什麼*發生,或者該按鈕與該情況的處理方式無關。目前,如果你將鼠標停留在底部的對象(在這種情況下,一個長方形的雪碧,但它可以是任何東西,爲SimpleButton,影片剪輯,任何東西),它做什麼,它應該做的,同樣爲所有其他鼠標事件。但關鍵問題是,當您將鼠標懸停在文本上時,該事件和所有其他鼠標事件只能到達TextField。我需要的是文本和底層對象來獲取該事件。 – seaders 2011-05-13 13:30:38