Frage

In meiner AIR-Anwendung, möchte ich mit jQuery ein HTML-Element animieren. Wenn ich die Animation in dem globalen Htmlloader versuche, ist es kein Problem. Ich bin jedoch ein Problem, wenn versucht wird, die Elemente in einem ‚sekundären‘ Htmlloader zu animieren (d.h. einen von dem Original-Dokument geöffnet).

Die Animation ist nicht glatt - es ist nur ‚Schritte‘, wenn ich die Maus bewegen. Die animierte Eigenschaft (z top, left, etc.) wird noch aktualisiert - es ist einfach nicht sichtbar, wenn die Maus bewegt wird. Also, wenn ich nicht die Maus zu bewegen, die Animation abgeschlossen ist, ohne jeden Übergang zwischen dem Start- und Zielzustand zu sehen.

Die Art der Animation scheint nicht signifikant. Ich habe den Code wie folgt vereinfacht:

var loader;

$(function() {
    loader = new air.HTMLLoader();
    loader.addEventListener(air.Event.COMPLETE, start);
    window.htmlLoader.stage.addChild(loader);
    loader.load(new air.URLRequest('sandbox2.html'));
});

function start() {
    loader.width = loader.window.document.width;
    loader.height = loader.window.document.height;
    $('.task', loader.window.document).click(function() {
        $(this).animate({ backgroundColor: '#c00' }, 1000);
    });
}

Ich habe versucht, die entsprechende HTML-Laden / JS in Firefox und Safari, und es war in Ordnung. Ich bin mit Mac OS X 10.5.

Irgendwelche Ideen? Dank!

War es hilfreich?

Lösung

Ich habe das gleiche Problem hat. Das Problem liegt darin, dass jQuery das Intervall setzt, mit dem die Animation auf dem Hauptfenster aktualisiert werden muss, nicht auf dem sekundären Fenster Kontext.

Ich habe eine kleine Patch jQuery 1.3.2, die für mich funktioniert.

Andere Tipps

AIR ist mehr wie Safari und Chrome. AIR nutzt Webkit, und es ist ein bisschen hinter Safari und Chrome in der Webkit-Version. Können Sie sehen, wie diese Arbeit?

Ich habe jQuery in AIR verwendet, aber ich glaube nicht, dass ich die belebte Methode in AIR verwendet habe.

Versuchen Sie auch, nach unten zu verengen, ob es etwas über Farbe ist (obwohl ich kann mir nicht vorstellen, was). Probieren Sie etwas wie Höhe statt Farbe.

Auch, warum haben Sie noConflict benutzen? Haben Sie eine andere Bibliothek geladen haben? Ich erinnere mich nicht, das zu tun.

Wenn es korrekt auf Safari funktioniert, aber nicht in Adobe AIR, sieht es für mich wie seine eine Sicherheitslücke mit jquery App innerhalb der Anwendungs-Sandbox (Standard aber Sperrgebiet auf Adobe AIR) ausgeführt wird. Erstellen Sie eine nicht-Anwendungs-Sandbox und führen Sie Ihre Anwendung in dort zu sehen, ob dies ein Sicherheitsproblem ist. Die Nicht-Anwendungs-Sandbox sollte genau wie der Browser funktionieren. http://labs.adobe.com/wiki/index.php/AIR: HTML_Security_FAQ

Im Gegensatz zu Inhalt in der Anwendungs-Sandbox, JavaScript-Inhalte in einer nicht-Anwendungs-Sandbox kann die Funktion eval () aufrufen jederzeit dynamisch generierten Code auszuführen. Allerdings gibt es Einschränkungen JavaScript in einer nicht-Anwendungs-Sandbox. Aber diese Einschränkungen spiegeln allgemeine Browser Einschränkungen.

Eine nicht-Anwendungs-Sandbox kann unter Verwendung eines iframe leicht erstellt werden.

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