Volg deze snelle tip om te leren hoe u de internetbrowser en gebruikersagent detecteert met behulp van AS3 en Flash.
We gebruiken TextFields en de hulp van ExternalInterface om de User Agent op te halen via een JavaScript-aanroep en deze weer te geven in onze SWF. Wanneer de User Agent is opgeslagen, geeft een eenvoudige zoekopdracht door de geretourneerde String ons de internetbrowser.
Start Flash en maak een nieuw Flash-document, stel de stage in op 400x200 px en de framesnelheid op 24 fps.
Dit is de interface die we zullen gebruiken, refereer naar de afbeelding hierboven voor de instantienamen. Maak het zelf opnieuw of gebruik gewoon de Source FLA.
Maak een nieuwe ActionScript-klasse (Cmd + N), sla het bestand op als Main.as en begin met schrijven:
pakket import flash.display.Sprite; import flash.external.ExternalInterface; import flash.events.MouseEvent; import fl.transitions.Tween; public class Main breidt Sprite uit private var userAgent: String; public function Main (): void more.addEventListener (MouseEvent.MOUSE_UP, showFull); browserTxt.text = getUserAgent (); letterpress.text = getUserAgent (); private function getUserAgent (): String try userAgent = ExternalInterface.call ("window.navigator.userAgent.toString"); var browser: String = "[Onbekende browser]"; if (userAgent.indexOf ("Safari")! = -1) browser = "Safari"; if (userAgent.indexOf ("Firefox")! = -1) browser = "Firefox"; if (userAgent.indexOf ("Chrome")! = -1) browser = "Chrome"; if (userAgent.indexOf ("MSIE")! = -1) browser = "Internet Explorer"; if (userAgent.indexOf ("Opera")! = -1) browser = "Opera"; catch (e: Error) // kan geen toegang krijgen tot ExternalInterface bij het bevatten van paginaretour "[No ExternalInterface]"; terug browser; private function showFull (e: MouseEvent): void info.fullInfo.text = userAgent; var tween: Tween = nieuwe Tween (info, "y", null, info.y, 180,0.5, true);
Een ExternalInterface
oproep naar een JavaScript-functie krijgt de User Agent tekenreeks en gebruik de index van()
methode om te zoeken naar de ID van elke browser binnen die reeks; als de reeks gebruikersagenten de naam bevat van de browser die u zoekt, kunt u ervan uitgaan dat dit de browser is die de gebruiker gebruikt. U kunt in dit gebied een specifieke browser toevoegen. De meer knop zal de animeren info paneel naar het podium en onthul de volledige User Agent-informatie.
Als het ExternalInterface
oproep mislukt, de try-catch-instructie zal dit ophalen en een eenvoudig foutbericht naar het tekstvak retourneren. Het kan mislukken als de SWF wordt uitgevoerd in stand-alone Flash Player of als de betreffende webpagina het gebruik ervan verbiedt.
Vergeet niet om de klassenaam toe te voegen aan de Klasse veld in de Publiceren deel van de eigenschappen paneel.
Om de SWF in actie te zien (deze kan fouten bij het testen in de IDE veroorzaken) moet je het bestand openen in de browser, je kunt op Shift + Cmd + F12 drukken (Bestand | Publiceren) om een HTML-bestand te publiceren en vervolgens te openen of sleep de SWF van uw projectmap naar de browser om het bestand te laten werken.
U kunt specifieke wijzigingen in uw toepassing aanbrengen op basis van de verkregen browser en User Agent-gegevens.
Wees hier voorzichtig mee; het gebruik van de user-agentstring wordt als onbetrouwbaar beschouwd, omdat gebruikers de inhoud van deze reeks op verschillende manieren kunnen wijzigen. Sommige browsers hebben zelfs een functie waarmee ze zich kunnen voordoen als andere browsers door hun eigen user-agentstring te wijzigen. Het is niet verstandig om de gebruiker uit een site te vergrendelen (of deze alleen aan een site te laten deelnemen) alleen op basis van de user-agentstring.
Ik hoop dat je deze Quick Tip leuk vond, bedankt voor het lezen!