Domanda

voglio caricare un file SWF in un flex 4 applicazione al fine di utilizzare le sue classi.

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

ricevo l'errore:

  

Errore: addChild () non è disponibile in questa classe. Utilizzare invece addElement () o modificare la pelle, se ne avete uno.
   a spark.components.supportClasses :: SkinnableComponent / addChild () [E: \ dev \ gumbo_beta2 \ framework \ projects \ scintilla \ src \ scintilla \ components \ supportClasses \ SkinnableComponent.as: 966]
   al main / privato: init / caricato () [C: \ Documents and Settings \ UFK \ Adobe Flash Builder Beta 2 \ xpogames-toolkit-test \ src \ main.mxml: 22]

Se cambio addChild() a addElement(), ricevo il seguente errore di compilazione:

  

1067: Assegnazione forzata implicita di un valore di tipo flash.display: Loader per un tipo di mx.core non correlato: IVisualElement. main.mxml percorso / linea dir 22 Flex Problema

Tutte le idee su come risolvere questo problema?

È stato utile?

Soluzione 2

bene in costruttore di Flash 4 versione completa, non c'è alcun this.rawChildren.

L'approccio migliore per risolvere il problema sarebbe quello di convertire ogni classe richiesta per un componente Flex e usarlo sulla vostra applicazione Flex:

  1. scaricare e installare kit di componenti Flex http://www.adobe.com/cfusion/entitlement/index. cfm? e = flex_skins

  2. creare un clip filmato

  3. convertirsi componente Flex

  4. aggiungere le funzioni relative a questa classe

uno scheletro per una classe che è collegato a un movieclip che sta per essere convertito in un componente 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();
    }
}
} 

Altri suggerimenti

Crea un altro contenitore per posizionare il DisplayObject in:

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

Prova questo. Si lavorerà

this.rawChildren.addChild (LDR) dovrebbe funzionare

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top