Frage

Ist es möglich, die x, y-Koordinaten eines Flex App innerhalb einer HTML-Seite zu bekommen? Ich weiß, Sie ExternalInterface.ObjecID verwenden können die „id-Attribut des Objekt-Tag in Internet Explorer oder den Namen Attribut des embed-Tag in Netscape“ zu bekommen, aber ich kann nicht in der Vergangenheit, dass der Schritt zu bekommen scheinen. Es scheint, wie sollte es möglich sein, einen Griff an diesem embed-Objekt zu erhalten. Irgendwelche Vorschläge?

Danke.

War es hilfreich?

Lösung

Ich denke, die einfachste Sache zu tun ist, eine Art von JavaScript-Bibliothek auf der HTML-Seite zu schließen, sagen jQuery, und es verwendet, Funktionen ist die Position und Größe von DOM-Knoten zu bestimmen. Ich würde es tun oder weniger wie folgt aus:

var jsCode : String = "function( id ) { return $('#' + id).offset(); }";

var offset : Object = ExternalInterface.call(jsCode, ExternalObject.objectID);

trace(offset.left, offset.top);

Beachten Sie, dass diese Actionscript-Code, aber es läuft JavaScript-Code durch ExternalInterface. Es verwendet jQuery und insbesondere seine offset Methode, die die linken und oberen eines DOM Knotens Offset zurück.

Sie ohne jQuery tun könnte, wenn man betrachtet, wie die offset Methode implementiert und enthalten diesen Code anstelle des Anrufs zu jQuery. Auf diese Weise würden Sie nicht brauchen jQuery im HTML und der Flex App umluftunabhängigem wäre zu laden. Der Grund schlage ich vor, eine Bibliothek wie jQuery zu verwenden ist, dass Browser anders diese Dinge tun. Ich bin mir nicht sicher, ob Offsets ist sehr verschieden von Browser zu Browser zu berechnen, aber es tut nicht weh, von Browser Unterschieden isoliert werden.

Die JavaScript in meinem Beispiel ist eine anonyme Funktion, so dass die ID des embed / object-Tages kann in ihn als Parameter übergeben werden, um ExternalInterface.call, aber man konnte nur String-Verkettung verwenden, wenn Sie wollen:

var jsCode : String = "$('#' +" + ExternalInterface.objectID + ").offset()";

var offset : Object = ExternalInterface.call(jsCode);

Das wäre zu arbeiten, ich denke nur, die erste Version ist eleganter.

Andere Tipps

Wenn Sie nur versuchen, zu messen, wo es innerhalb einer Seite als externer Benutzer ist das einzige, was mir in den Sinn kommt ist eine Firefox-Erweiterung namens MeasureIt ich es für verschiedene Mess auf Web-Seiten gelegentlich verwendet haben.

Versuchen Sie, diese innerhalb der eingebetteten Seite selbst programmatisch zu tun, und wenn ja, welches Langauge?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top