Frage

Ich möchte eine swf in eine Flex-4-Anwendung laden, um ihre Klassen zu verwenden.

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

Ich erhalte die Fehlermeldung:

  

Fehler: addChild () ist in dieser Klasse nicht verfügbar. Verwenden Sie stattdessen addElement () oder die Haut ändern, wenn Sie eine haben.
   bei spark.components.supportClasses :: SkinnableComponent / addChild () [E: \ dev \ gumbo_beta2 \ Frameworks \ projects \ Funken \ src \ Funken \ components \ supportClasses \ SkinnableComponent.as: 966]
   bei main / privat: init / geladen () [C: \ Dokumente und Einstellungen \ UFK \ Adobe Flash Builder Beta 2 \ xpogames-Toolkit-test \ src \ main.mxml: 22]

Wenn ich addChild() ändern addElement(), erhalte ich die folgenden Kompilierungsfehler:

  

1067: Implizite Umwandlung eines Wertes vom Typ flash.display: Loader zu einem nicht verwandten Typ mx.core: IVisualElement. main.mxml Pfad / dir Linie 22 Flex Problem

Irgendwelche Ideen, wie dieses Problem zu lösen?

War es hilfreich?

Lösung 2

gut in Flash Builder 4 Vollversion gibt es keine this.rawChildren.

Der beste Ansatz zur Lösung des Problems wäre jede erforderliche Klasse zu einer flexiblen Komponente zu konvertieren und auf Ihrer Flex-Anwendung zu verwenden:

  1. herunterladen und installieren flex Komponenten-Kit http://www.adobe.com/cfusion/entitlement/index. cfm? e = flex_skins

  2. Erstellen Sie einen Movieclip

  3. konvertieren, um Flex-Komponente

  4. die entsprechenden Funktionen diese Klasse hinzufügen

ein Skelett für eine Klasse, die zu einem Movieclip befestigt ist, die im Begriff ist, zu einer flexiblen Komponente umgewandelt werden:

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

Andere Tipps

einen anderen Container Erstellen der Display in platzieren:

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

Versuchen Sie dies. Es wird funktionieren

this.rawChildren.addChild (LDR) sollte funktionieren

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top