onsdag 19 november 2008

Focus i Flash

Emellanåt får man lite frågor kring varför vissa saker inte fungerar som förväntat i flashsajter jmf med html. Satt idag och kollade lite på genvägar som ctrl+t för att öppna ny tab i Firefox. Har man en flash på sidan som har fokus så skickas inte tangentbordsinmatningarna vidare tilll htmlsidan/fönstret utan stannar i flashen. Lite funderingar och några minuter senare var lösningen klar.

Flash
// Importera external interface
import flash.external.ExternalInterface;
// lägg till lyssnare för keyboard eventen:
stage.addEventListener(KeyboardEvent.KEY_DOWN, OnKeyboard);
// funktion som hanterar tangenttryckningar
// om "ctrl" är nertryckt - kalla på javascript som sätter focus på fönstret
private function OnKeyboard(e:KeyboardEvent):void
{
if (e.ctrlKey)
ExternalInterface.call("htmlFocus");
else
ExternalInterface.call("flashFocus");
}

Javascript
function htmlFocus(){
document.getElementById("focusElementID").focus();
}
function flashFocus(){
document.getElementById("flashMovieID").focus();
}

Html

1 kommentar:

Helena sa...

Jag ska vara helt ärlig och säga ???? ruski ruski