Domanda

Nella mia applicazione AIR, voglio animare un elemento HTML utilizzando jQuery. Quando tento l'animazione nel HTMLLoader globale, non c'è nessun problema. Tuttavia, sto avendo un problema quando si tenta di animare elementi in un HTMLLoader 'secondaria' (vale a dire uno aperto dal documento originale).

L'animazione non è liscia - è solo 'passi' quando muovo il mouse. La proprietà animata (ad esempio top, left, ecc) è ancora aggiornato - semplicemente non è visibile a meno che il mouse viene spostato. Quindi, se io non mi muovo il mouse, l'animazione completa senza vedere alcuna transizione tra l'inizio e la fine dello stato.

Il tipo di animazione non sembra essere significativo. Ho semplificato il codice di seguito:

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);
    });
}

Ho provato a caricare il codice HTML equivalente / JS in Firefox e Safari, e andava bene. Sono in esecuzione Mac OS X 10.5.

Tutte le idee? Grazie!

È stato utile?

Soluzione

Ho avuto lo stesso problema. Il problema sta nel fatto che jQuery imposta l'intervallo con cui l'animazione deve essere aggiornato nella finestra principale, non sul contesto finestra secondaria.

Ho fatto un piccola patch per jQuery 1.3.2 che funziona per me.

Altri suggerimenti

AIR è più come Safari e Chrome. AIR utilizza Webkit, ed è un po 'indietro Safari e Chrome nella versione Webkit. Si può vedere come quelli di lavoro?

Ho usato jQuery in AIR, ma io non credo di aver usato il metodo animato in AIR.

Inoltre, cercare di restringere il campo se si tratta di qualcosa a proposito del colore (anche se non riesco a immaginare che cosa). Provare qualcosa di simile altezza, invece di colore.

Inoltre, perché hai dovuto usare noConflict? Hai un'altra libreria caricata? Non ricordo di avere a che fare questo.

Se funziona correttamente su Safari, ma non in Adobe AIR, sembra a me come il suo un problema di sicurezza con il vostro jquery app in esecuzione all'interno del sandbox dell'applicazione (impostazione predefinita ma area riservata su Adobe AIR). Si prega di creare una sandbox non dell'applicazione ed eseguire la vostra applicazione in là per vedere se questo è un problema di sicurezza. La sandbox non dell'applicazione dovrebbe funzionare esattamente come il browser. http://labs.adobe.com/wiki/index.php/AIR: HTML_Security_FAQ

A differenza contenuto nella sandbox di sicurezza dell'applicazione, al contenuto JavaScript in una sandbox di sicurezza non applicazione può chiamare la funzione eval () per eseguire il codice generato dinamicamente in qualsiasi momento. Tuttavia, ci sono restrizioni JavaScript in una sandbox di sicurezza non dell'applicazione. Ma queste restrizioni rispecchiano restrizioni generali del browser.

Una sandbox non applicazione può essere creato facilmente utilizzando un iframe.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top