2010-02-12 11 views
0

Je travaille sur une interface utilisateur qui utilise intensément la classe Tweener, et qui charge également un fichier .swf externe qui, selon moi, utilise également le Classe Tweener. Après avoir traqué toutes sortes de comportements buggés, je pense que le problème est que le fichier .swf chargé fait des appels à Tweener.removeAllTweens() *** (Ceci est juste une supposition) et arrête d'autres tweens qui se passe dans mon interface utilisateur.Comment puis-je isoler la classe Tweener afin que .swfs chargé n'interfère pas avec mes tweens?

Est-ce possible, et si oui, est-il possible d'isoler les deux versions de la classe Tweener afin qu'elles ne référencent pas le même objet?

Merci :)

Répondre

2

Vous pouvez essayer d'utiliser un LoaderContext avec un ApplicationDomain différent.

Lors du chargement SWF externe, vous pouvez avoir les définitions chargées * être FSv partagé avec le fichier SWF principal, override eux ou vous pouvez les avoir complètement isolés. Vous mettez ces définitions dans quelque chose connu sous le nom ApplicationDomain.

** lire les classes, y compris les actifs graphiques marqués pour exporter dans la bibliothèque *

La configuration qui vous intéresse est la suivante:. Votre domaine SWF chargé est isolé à partir de votre principal et conserve ses propres classes définitions .

var distinctDefinitions: LoaderContext = new LoaderContext(); separateDefinitions.applicationDomain = nouveau ApplicationDomain(); var myLoader: Loader = new Loader(); var demande: URLRequest = new URLRequest ( "OtherSWF.swf"); myLoader.load (demande, distinctDefinitions);

LoaderContext and ApplicationDomain explained by Senocular on kirupa

+0

je rédigeais ma réponse quand Marplesoft submited son ... – goliatone

2

Oui, il est appelé un domaine d'application. C'est comme un espace mémoire séparé pour charger des SWF externes. Il y a un decent article here dessus.