|
Bronnen voor Flash CS4 |
Basisinformatie over AIR-venstersAIR biedt een gebruikersvriendelijke API die op meerdere platforms kan worden gebruikt. Met deze API voor vensters kunnen met Flash®-, Flex™- en HTML-programmeertechnieken native vensters worden gemaakt (dit zijn vensters die eigen zijn aan het besturingssysteem). Met AIR hebt u een grote vrijheid bij het ontwikkelen van het uiterlijk van uw toepassing. De vensters die u maakt kunnen er uitzien als een standaard desktoptoepassing die passen bij de Apple-stijl wanneer ze worden uitgevoerd op de Mac, die voldoen aan de Microsoft-conventies wanneer ze worden uitgevoerd op Windows en die zich aanpassen aan het Linux-vensterbeheer op Linux zonder dat u een regel platformspecifieke code hoeft te gebruiken. U kunt echter ook de uitbreidbare interface met verwisselbare skins (weergaven) gebruiken die door het Flex-framework wordt geboden. Met deze interface kunt u uw eigen stijl ontwikkelen, ongeacht het besturingssysteem waarin uw toepassing wordt uitgevoerd. U kunt zelfs uw eigen vensterinterface tekenen met vector- en bitmap-illustraties met volledige ondersteuning voor transparantie. Ook alfa-overvloeiing wordt ondersteund, waarmee u een gedeeltelijk transparant venster kunt laten overvloeien in de bureaubladachtergrond. Hebt u genoeg van die rechthoekige vensters? Teken eens een rond venster. Vensters in AIRAIR ondersteunt drie specifieke API's voor het werken met vensters:
ActionScript-venstersWanneer u vensters maakt met de klasse NativeWindow, kunt u rechtstreeks gebruikmaken van de stage en weergavelijst van Flash Player. Als u visuele objecten aan een NativeWindow wilt toevoegen, voegt u het object toe aan de weergavelijst van de vensterstage of aan een andere weergaveobjectcontainer op de stage. Flex-frameworkvenstersHet Flex-framework definieert zijn eigen venstercomponenten waarin de NativeWindow-API is verpakt. Deze componenten, mx:WindowedApplication en mx:Window, kunnen niet buiten het framework worden gebruikt, en kunnen dus niet worden gebruikt in AIR-toepassingen die zijn ontwikkeld met Flash CS. HTML-venstersWanneer u HTML-vensters maakt, gebruikt u HTML, CSS en JavaScript om inhoud weer te geven. Als u een visueel object aan een HTML-venster wilt toevoegen, voegt u die inhoud toe aan het HTML DOM. HTML-vensters vormen een speciale categorie van NativeWindow. De AIR-host definieert in HTML-vensters een nativeWindow-eigenschap die toegang biedt tot de onderliggende NativeWindow-instantie. U kunt deze eigenschap gebruiken om toegang te krijgen tot de NativeWindow-eigenschappen, -methoden en -gebeurtenissen die hier worden beschreven. Opmerking: Het JavaScript-object Window heeft ook methoden voor het schrijven van scripts voor het venster waarin het object zich bevindt, zoals moveTo() en close(). Wanneer er methoden beschikbaar zijn die elkaar overlappen, kunt u de methode gebruiken die het handigst is.
Het beginvenster van de toepassingHet eerste venster van uw toepassing wordt automatisch voor u gemaakt door AIR. AIR stelt de eigenschappen en inhoud van het venster in met de parameters die zijn opgegeven in het element initialWindow van het descriptorbestand van de toepassing. Als de inhoud van de hoofdmap een SWF-bestand is, maakt AIR een NativeWindow-instantie, laadt het dit SWF-bestand en voegt het dit bestand toe aan de vensterstage. Als de inhoud van de hoofdmap een HTML-bestand is, maakt AIR een HTML-venster en laadt het dit HTML-bestand. Zie De structuur van het descriptorbestand van de toepassing voor meer informatie over de venstereigenschappen die zijn opgegeven in de toepassingsdescriptor. Klassen van native venstersDe API voor native vensters bevat de volgende klassen:
Gebeurtenisstromen voor native venstersNative vensters verzenden gebeurtenissen om belanghebbende componenten te melden dat er een belangrijke wijziging zal worden doorgevoerd of al is doorgevoerd. Veel gebeurtenissen die betrekking hebben op vensters, worden in paren verzonden. De eerste gebeurtenis waarschuwt dat er binnenkort een verandering zal plaatsvinden. De tweede gebeurtenis meldt dat de wijziging heeft plaatsgevonden. U kunt een waarschuwingsgebeurtenis annuleren, maar een meldingsgebeurtenis niet. De volgende reeks gebeurtenissen laat zien hoe de gebeurtenisstroom loopt wanneer een gebruiker op de knop Maximaliseren van een venster klikt:
Eigenschappen die de stijl en het gedrag van een native venster bepalenDe volgende eigenschappen bepalen het basisuiterlijk en -gedrag van een venster:
Wanneer u een venster maakt, stelt u deze eigenschappen in voor het NativeWindowInitOptions-object dat aan de vensterconstructor wordt doorgegeven. AIR leest de eigenschappen voor het beginvenster van de toepassing vanuit de toepassingsdescriptor. (Dit geldt niet voor de eigenschap type, die niet in de toepassingsdescriptor kan worden ingesteld en altijd is ingesteld op normal.) De eigenschappen kunnen niet worden gewijzigd nadat het venster is gemaakt. Sommige instellingen van deze eigenschappen sluiten elkaar uit: systemChrome kan niet worden ingesteld op standard als transparent is ingesteld op true of als type is ingesteld op lightweight. VenstertypenIn de venstertypen van AIR zijn de interface- en zichtbaarheidskenmerken van het oorspronkelijke besturingssysteem gecombineerd. Op die manier zijn er drie functionele typen vensters ontstaan. Gebruik de constanten die in de klasse NativeWindowType zijn gedefinieerd, om in de code te verwijzen naar de naam van de typen. AIR biedt de volgende venstertypen:
VensterinterfaceDe vensterinterface bestaat uit een set besturingselementen waarmee gebruikers een venster in de bureaubladomgeving kunnen manipuleren. Tot de interface-elementen behoren de titelbalk, titelbalkknoppen, vensterrand en formaatgrepen. SysteeminterfaceU kunt de eigenschap systemChrome instellen op standard of none. Kies standard voor de systeeminterface als u het venster wilt voorzien van de reeks standaard besturingselementen die worden gemaakt en vormgegeven door het besturingssysteem van de gebruiker. Kies none als u het venster wilt voorzien van uw eigen interface. Gebruik de constanten die in de klasse NativeWindowSystemChrome zijn gedefinieerd, om in de code te verwijzen naar de instellingen van de systeeminterface. De systeeminterface wordt beheerd door het systeem. Uw toepassing heeft niet rechtstreeks toegang tot de besturingselementen zelf, maar kan reageren op de gebeurtenissen die worden verzonden wanneer de besturingselementen worden gebruikt. Wanneer u de standaardinterface gebruikt voor een venster, moet de eigenschap transparent zijn ingesteld op false en moet de eigenschap type zijn ingesteld op normal of utility. VenstertransparantieAls u alfa-overvloeiing wilt toestaan, waarbij het venster deels transparant wordt en overvloeit in de bureaubladachtergrond of in andere vensters, stelt u de eigenschap transparent van het venster in op true. De eigenschap transparent moet worden ingesteld voordat het venster wordt gemaakt en kan niet worden gewijzigd als het venster eenmaal is gemaakt. Een transparant venster heeft geen standaardachtergrond. Elk venstergebied dat geen object bevat dat door de toepassing is getekend, is onzichtbaar. Als voor een weergegeven object de alfa-instelling kleiner is dan één, is alles wat zich onder het object bevindt, gedeeltelijk zichtbaar door het object heen, inclusief eventuele andere weergaveobjecten, andere vensters en het bureaublad. Het opbouwen van het beeld van grote gebieden waarop alfa-overvloeiing is toegepast, kan veel tijd kosten. Gebruik dit effect daarom slechts met mate. Transparante vensters zijn handig wanneer u toepassingen wilt maken met randen die onregelmatig van vorm zijn, geleidelijk vervagen of onzichtbaar lijken. Belangrijk: In Linux kunnen muisgebeurtenissen volledig transparante pixel niet passeren. Vermijd het maken van vensters met grote, volledig transparante gebieden, aangezien u de toegang van de gebruiker tot andere vensters of items op hun bureaublad mogelijk op onzichtbare wijze zou kunnen blokkeren. In Mac OS X en Windows kunnen muisgebeurtenissen volledig transparante pixels niet passeren.
Transparantie kan niet worden gebruikt voor vensters die gebruikmaken van de systeeminterface. Daarnaast worden SWF-inhoud en PDF-inhoud in HTML niet weergegeven in transparante vensters. Zie Belangrijke opmerkingen voor het laden van SWF- of PDF-inhoud in een HTML-pagina voor meer informatie. In bepaalde besturingssystemen wordt transparantie niet ondersteund omdat de hardware- of softwareconfiguratie dat niet toestaat of omdat de door de gebruiker gekozen weergaveopties dat verhinderen. Als transparantie niet wordt ondersteund, wordt de toepassing tegen een zwarte achtergrond geplaatst. In deze gevallen worden transparante gebieden van de toepassing dekkend zwart weergegeven. De statische eigenschap NativeWindow.supportsTransparency geeft aan of venstertransparantie beschikbaar is. Als uit de test blijkt dat deze eigenschap de waarde false heeft, kunt u bijvoorbeeld een waarschuwingsvenster weergeven voor de gebruiker of de rechthoekige, niet-transparante gebruikersinterface weergeven die u voor dit soort gevallen achter de hand hebt. Bedenk dat transparantie altijd wordt ondersteund door Mac- en Windows-besturingssystemen. Voor ondersteuning in Linux-besturingssystemen is een hulpprogramma voor samenstellend vensterbeheer vereist. Zelfs als zo'n hulpprogramma actief is, is transparantie mogelijk niet beschikbaar vanwege de door de gebruiker gekozen weergaveopties of de hardwareconfiguratie. Transparantie in een HTML-toepassingsvensterDe achtergrond van HTML-inhoud die in HTML-vensters en HTMLLoader-objecten wordt weergegeven, is standaard ondoorzichtig, zelfs als het venster waarin de inhoud wordt weergegeven, transparant is. Als u de standaardachtergrond wilt uitschakelen die voor HTML-inhoud wordt weergegeven, stelt u de eigenschap paintsDefaultBackground in op false. In het volgende voorbeeld wordt een HTMLLoader gemaakt en wordt de standaardachtergrond uitgeschakeld: var html:HTMLLoader = new HTMLLoader(); html.paintsDefaultBackground = false; In dit voorbeeld wordt JavaScript gebruikt om de standaardachtergrond van een HTML-venster uit te schakelen: window.htmlLoader.paintsDefaultBackground = false; Als een element in het HTML-document een achtergrondkleur instelt, is de achtergrond van dat element niet transparant. Het instellen van een waarde voor gedeeltelijke transparantie (of matheid) wordt niet ondersteund. U kunt echter een transparante afbeelding in de PNG-indeling als achtergrond voor een pagina of pagina-element gebruiken om een vergelijkbaar visueel effect te krijgen. Een visuele venstercatalogusDe volgende tabel illustreert de visuele effecten van verschillende combinaties van de instellingen van venstereigenschappen in de besturingssystemen Mac OS X, Windows en Linux:
*Ubuntu met Compiz-vensterbeheer Opmerking: De volgende systeemchroomelementen worden niet ondersteund door AIR: de Mac OS X-werkbalk, het Mac OS X-proxypictogram, pictogrammen op de Windows-titelbalk en alternatieve systeemchroom.
|