Question

Je veux charger un swf dans une application Flex 4 pour pouvoir utiliser ses classes.

var ldr:Loader=new Loader();
ldr.load(new URLRequest("file://path/to/fileswf"));
ldr.contentLoaderInfo.addEventListener(Event.INIT, loaded);
function loaded(evt:Event):void { addChild(ldr); }

Je reçois l'erreur:

  

Erreur: addChild () ne sont pas disponibles dans cette classe. Au lieu de cela, utilisez addElement () ou modifier la peau, si vous en avez un.
   à spark.components.supportClasses :: SkinnableComponent / addChild () [E: \ dev \ gumbo_beta2 \ cadres \ projects \ \ étincelle composants src \ \ étincelle de \ supportClasses \ SkinnableComponent.as: 966]
   au principal / privé: init / chargé () [C: \ Documents and Settings \ UFK \ Adobe Flash Builder Beta 2 \ xpogames-boîte à outils-test \ src \ main.mxml: 22]

Si je change addChild() à addElement(), je reçois l'erreur de compilation suivante:

  

1067: Contrainte implicite d'une valeur de type flash.display: chargeur à un mx.core de type indépendant: IVisualElement. main.mxml chemin / dir ligne 22 Flex problème

Toutes les idées comment résoudre ce problème?

Était-ce utile?

La solution 2

bien dans le constructeur flash de 4 version complète, il n'y a pas de this.rawChildren.

La meilleure approche pour résoudre le problème serait de convertir chaque classe nécessaire à un composant flexible et de l'utiliser sur votre application flex:

  1. téléchargez et installez le kit de composants Flex http://www.adobe.com/cfusion/entitlement/index. cfm? e = flex_skins

  2. créer un clip vidéo

  3. Convertir en composant flex

  4. ajouter les fonctions à cette classe

un squelette pour une classe qui est attaché à un MovieClip qui est sur le point d'être converti en un composant Flex:

package {
import mx.flash.UIMovieClip;
import flash.text.TextField;
import flash.events.Event;
import flash.events.MouseEvent;
public dynamic class challenge_screen extends UIMovieClip {

    public function challenge_screen() {
        super();
    }
}
} 

Autres conseils

Créer un autre récipient pour placer la displayObject dans:

// container ( IVisualElement ) for DisplayObjects
var container:UIComponent = new UIComponent();
addElement( container );

// displayObject goes to container
var displayO:Sprite = new Sprite();
container.addChild( displayO );
private var _loader:SWFLoader = new SWFLoader();
private var _uicomponent:UIComponent = new UIComponent();
private function swfLoaded(event:Event):void 
{
Alert.show("inside swf Loaded");
var content:DisplayObject =_loader.content;
_uicomponent.addChild(content);
} 
public function loadSWF () : void 
{   

_loader.addEventListener(Event.INIT, swfLoaded);
_loader.load("http://intelliveysoft.com:5080/myelearn/Admin.swf"); 
addElement(_uicomponent);
}

Essayez ceci. Il fonctionne

this.rawChildren.addChild (LDR) devrait fonctionner

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top