2010-08-12 6 views
0

J'ai une application développée dans ActionScript 2 qui a une activité glisser/déposer. ce qui fonctionne bien. J'ai utilisé ci-dessous pour tester laissant tomberLa suppression par draggin d'AVM1 (ActionScript 1/2) ne fonctionne pas dans AVM2 (ActionScript 3/Flex)

dropObject.hitTest(_root._xmouse, _root._ymouse, true) //if true, drop currently dragging object 

problème se produit lorsque je mets ce SWF dans mon application Flex contenant SWFLoader. le déplacement ne fonctionne pas du tout dans ce cas.

des idées les gars?

+0

Un commentaire? – DexTer

+0

Cela pourrait-il avoir quelque chose à voir avec _root? lorsqu'il est hébergé dans un autre VM (conteneur Flex), les valeurs de propriété de _root peuvent ne pas être les mêmes que dans le cas normal ... ???? – DexTer

Répondre

0

J'ai finalement compris pourquoi il se passait

Lorsque nous avons mis dans le conteneur objet AVM1 AVM2, AVM1 système de coordonnées se poursuit un tirage au sort. Pour l'éviter, placez un sprite fictif dans le coin supérieur gauche dans AVM1 et modifiez toute la logique de la vérification par glisser-déposer par rapport à cet objet, et non avec _root.

Ce n'est pas le cas avec d'autres modules AVM2. Ils fonctionnent bien autonome et dans un autre conteneur.

1

Aucune interopérabilité (telle que l'appel de méthodes ou l'utilisation de paramètres) entre l'objet AVM1Movie et les objets AVM2 n'est autorisée.

pris de: (! Ou ne se passe pas) http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/

+0

Mais je n'utilise pas d'interopérabilité en tant que telle ou n'appelle aucune méthode d'une VM à une autre. Je suis en train d'exécuter un module autonome et fonctionnant correctement dans SWFLoader et de l'afficher. – DexTer

+1

J'appellerais interopérabilité glisser. Vous appelez la méthode glisser-déposer du film AVM1 à partir du film AVM2. – PatrickS

Questions connexes