Avlyssna fönsterhändelserAdobe AIR 1.0 och senare Om du vill avlyssna händelser som skickas av ett fönster registrerar du en lyssnare med fönsterinstansen. Om du till exempel vill avlyssna closing-händelsen registrerar du en lyssnare med fönstret enligt följande: myWindow.addEventListener(Event.CLOSING, onClosingEvent); När en händelse skickas refererar egenskapen target till det fönster som skickar händelsen. De flesta fönsterhändelser har två relaterade meddelanden. Det första meddelandet talar om att en fönsterändring kommer att utföras (och kan avbrytas), medan det andra meddelandet talar om att ändringen har utförts. När en användare exempelvis klickar på stängningsknappen i ett fönster, skickas händelsemeddelandet closing. Om inga lyssnare avbryter händelsen stängs fönstret och close-händelsen skickas till eventuella lyssnare. Vanligtvis skickas varningshändelser, till exempel closing, endast när systemfönsterstandarden har använts för att utlösa en händelse. Exempelvis skickas inte closing-händelsen automatiskt när metoden close() för fönstret anropas – endast close-händelsen skickas. Du kan däremot skapa en closing-händelse och skicka den med hjälp av Window-metoden dispatchEvent(). De fönsterhändelser som skickar ett Event-objekt är följande:
De fönsterhändelser som skickar ett NativeWindowBoundsEvent-objekt är följande:
Med NativeWindowBoundsEvent-händelser kan du använda egenskaperna beforeBounds och afterBounds för att identifiera fönstergränserna före och efter den förestående eller slutförda ändringen. De fönsterhändelser som skickar ett NativeWindowDisplayStateEvent-objekt är följande:
Med NativeWindowDisplayStateEvent-händelser kan du använda egenskaperna beforeDisplayState och afterDisplayState för att identifiera fönstrets visningsläge före och efter den förestående eller slutförda ändringen. I vissa Linux-fönsterhanterare skickas ingen händelse för ändrat visningsläge när ett fönster som har en inställning för högsta storlek maximeras. (Fönstret visas i maximerat fönsterläge, men fönstrets storlek ändras inte.) |
|