2011-11-01 3 views
2

J'ai un fichier principal dans .as et je charge .swf dans mon .as.Il fonctionne très bien, maintenant je veux la variable prendre de .swf et le passer dans .as. Comment puis-je faire ceci? pls. Aidez-moi! Mon fichier .swf codageComment passer une variable Du fichier .swf au fichier .as?

function formatMessage(chatData:Object) 
{ 
var number:uint = chatData.user; 
trace(chatData.user); 
} 
private function addText() 
    { 
_loader = new Loader(); 
_loader.x=10; 
_loader.y=200; 
_loader.load(new URLRequest("receive.swf"));//Here i Can Load the Swf.Here how Can i acces the Variable of number ? 
addChild(_loader); 
    } 
+0

Cette variable est DisplayObject? – IronBCC

+0

ya son objet d'affichage – Mercy

Répondre

1

La première chose à garder à l'esprit est que cela ne fonctionnera pas avec les versions de la machine virtuelle ActionScript. Signification seulement AVM2 et AVM2 peuvent faire la communication (c'est possible entre AVM1, mais prend plus d'ingéniosité).

Ajouter un écouteur d'événement d'achèvement à la propriété _loader.contentLoaderInfo appelé onLoad

_loader.x=10; 
_loader.y=200; 
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoad); 

Maintenant, avec la fonction onLoad devra extraire le contenu chargé et un peu coulée.

function onLoad(evt:Event):void { 
    var target:DisplayObject = LoaderInfo(evt.target).content as DisplayObject; // cast as DisplayObject 
    trace("readMe = ", target["your_variable"]); // trace output "your_variable" 
} 

Il existe des formes plus propres d'obtenir ce fait, mais cela vous permettra d'extraire la valeur du SWF imbriqué.

+0

monsieur je n'ai pas utilisé swf imbriqué. juste j'ajoute mon swf dans le fichier .as, Mon but est de récupérer la variable de .swf – Mercy

+0

@ user993437 - Est-ce que votre fichier ActionScript s'exécute? Oui. Lorsque vous exécutez le code ActionScript, vous l'exécutez en tant que fichier SWF (ou dans un fichier FLA qui à son tour est un fichier SWF lors de la compilation). Avec cette ligne de logique, votre fichier SWF compilé charge un autre fichier SWF appelé 'reciever.swf'. Cette méthode de chargement d'un fichier SWF dans un autre est appelée imbrication. Vous pouvez penser à votre propre terminologie, mais pour ce cas, elle est imbriquée. –

+0

Merci monsieur son information très utile.am en utilisant Flash Builder si je ne peux pas tracer la valeur.Est-il possible d'ajouter le texte dans addchild()? – Mercy

0

DisplayObjectContainer (_loader.content) .getChildByName ("UnNom");

La variable someName doit être publique, déclarée dans la ligne de temps principale ou dans le fichier principal.

+0

1061: Appel à une méthode éventuellement non définie getChildByName via une référence avec le type statique flash.display: DisplayObject. _loader.content.getChildByName ("chatSharedObjectName"); en ajoutant ce code je reçois une erreur comme celle-ci. – Mercy

+0

DisplayObjectContainer (_loader.content) .getChildByName (..) – IronBCC

Questions connexes