Was kann ich aus Flex/AS3 heraus aufrufen, die mir sagen, ob die Flex-App/Webseite innerhalb des lokalen Dateisystems ausgeführt wird oder eher von einem Webserver (entweder localhost oder remote) Server). Hoffentlich ist das klar. Wenn etwas in Javascript akzeptabel ist, wäre eine AS3-Funktion natürlich vorzuziehen.Ermitteln, ob vom Webserver aus aufgerufen
Antwort
Die Application-Klasse hat eine Eigenschaft: url
url: String [read-only]
Sprachversion: Actionscript 3.0
Produktversion: Flex 4
Laufzeitversionen: Flash Player 10, AIR 1.5
Die URL, von der diese SWF-Datei der Anwendung geladen wurde.
Implementierung
public function url get(): String
Sie ExternalInterface
verwenden könnte die aktuelle URL der App zu erhalten, und bewerten die Zeichenfolge für das Schema:
file: ///
http: //
https: //
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
creationComplete="creationCompleteHandler(event)">
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
protected function creationCompleteHandler(event:FlexEvent):void
{
trace(String(ExternalInterface.call(" function(){ return document.location.href.toString();}")));
}
]]>
</fx:Script>
</s:Application>
Es ist so seltsam - ich war ungefähr, dass gerade jetzt denken - fragen, ob alle Browser auf jeden Fall zurückkehren würde "file:", wenn als Datei serviert. – Mark
Einige reine ActionScript-Tests, die dies von etwas wie flash.system.Capabilities bestätigen könnten, wären nett. Sicherheitspolitik sollte auch eine Rolle spielen. Nicht sicher, wie zuverlässig diese Implementierung für Sie in Ihren Umgebungen funktioniert, scheint aber zunächst machbar. –
Ich werde dies als die Antwort markieren, wenn nichts besseres gepostet wird. Raten Sie, es würde nicht funktionieren, wenn Sie nur in FlashplayerSA selbst testen. Der Grund, warum ich es brauche, ist, dass ein SWFLoader meiner Erfahrung nach nicht funktioniert, wenn er als "Datei:" ausgeführt wird, wenn trustContent auf "True" gesetzt ist. Wenn es irgendwo eine crossdomain.xml im lokalen Dateisystem gibt, die es funktionieren lässt, habe ich es nicht gefunden - in C: \ oder wo auch immer. trustContent muss falsch sein oder SWFLoader wird nicht im lokalen Dateisystem ausgeführt. Jeder weiß, was ich dort vermisse. – Mark
- 1. Ermitteln, welcher Webserver verwendet wird
- 2. Video vom Webserver abspielen
- 3. Ermitteln, ob eine Anfrage vom Shopify Admin Panel kommt
- 4. Ermitteln, ob ein RenderSection() in Layout-Seite aufgerufen wurde
- 5. Handle Blank Response vom Webserver
- 6. TSQL Ermitteln, ob der Parameter vom Typ Struktur ist
- 7. Ermitteln, ob Thread schläft
- 8. VBScript läuft nicht abhängig vom Webserver
- 9. Ermitteln, wie die Assembly aufgerufen wurde
- 10. Ermitteln der unterstützten HTTP-Version durch den Webserver
- 11. Ermitteln, ob DataColumn numerisch ist
- 12. ODBC-Datenbanktreiber vom TADOConnection-Objekt ermitteln?
- 13. GridView zeigt kein Bild vom Webserver an
- 14. Ermitteln, ob WindowServer verfügbar ist?
- 15. So ermitteln Sie, ob eine Shellskriptdatei aus der Bash stammt
- 16. Ermitteln, ob .NET-Assemblys aus derselben Quelle erstellt wurden
- 17. Ermitteln, ob Call to Action aus einer Sicht stammt
- 18. Ermitteln, ob Konflikte in Set
- 19. Ermitteln, ob FILE * beschreibbar ist
- 20. Ermitteln, ob begindate ist Wochenende
- 21. Ermitteln, ob iOS webapp verwendet
- 22. Ermitteln, ob Aktionsleiste geteilt ist
- 23. Ermitteln, ob jemand Nginx, Apache oder Lighttpd verwendet
- 24. Ermitteln, ob .NET ListView-Steuerelement bearbeitet
- 25. Ermitteln, ob die Controller-Aktion autorisiert ist, bevor sie aufgerufen wird
- 26. Embedded Jetty Webserver funktioniert nicht, Handler nicht aufgerufen
- 27. Ermitteln, ob Polygon in Map-Grenzen
- 28. Warum werden implizite Variablen in Scala nicht initialisiert, wenn sie vom Komponententest aus aufgerufen werden?
- 29. Prüfen ob clearInterval aufgerufen wurde?
- 30. Ermitteln, ob ASP.NET-Sitzungen aktiviert sind
Danke. Benutzte das vorher. Hab's vergessen. – Mark