Проблема в фокусе. События нажатия клавиш генерируются только внутри компонента, когда этот компонент (или один из его потомков) имеет фокус. Чтобы изображение получало фокус, необходимо установить focusEnabled в значение true. Это, однако, требует, чтобы пользовательская вкладка давала фокусировку на изображение, так как нажатие на изображение не передает фокус, а тем более наводит на него курсор.
Если вы хотите прослушивать событие нажатия клавиши, когда пользовательская мышь находится над изображением, вы можете вручную назначить фокус на изображение, когда пользователь наводит на него указатель мыши.
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
import mx.core.UIComponent;
import mx.managers.IFocusManagerComponent;
private var oldFocus:IFocusManagerComponent;
public function imageMouseOver(event:MouseEvent):void {
oldFocus = focusManager.getFocus();
var newFocus:UIComponent = event.target as UIComponent;
newFocus.setFocus();
}
private function imageMouseOut(event:MouseEvent):void {
if (oldFocus) {
oldFocus.setFocus();
}
}
]]>
</mx:Script>
<mx:Canvas width="100%" height="100%">
<mx:Label id="lab" x="50" y="20" text="Nothing"/>
<mx:Image x="50" y="50" source="@Embed('image.png')" mouseOver="imageMouseOver(event)" mouseOut="imageMouseOut(event)" keyDown="lab.text='Something';" focusEnabled="true"/>
</mx:Canvas>
</mx:Application>
В качестве альтернативы, вы можете назначить слушателя с нажатой клавишей на сцену, когда пользователь наводит курсор мыши на изображение, и удалять его, когда пользователь выключает мышь.