Pregunta

Quiero cargar un archivo SWF en una aplicación Flex 4 con el fin de utilizar sus clases.

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

Recibo el error:

  

Error: addChild () no está disponible en esta clase. En su lugar, utilice addElement () o modificar la piel, si tiene uno.
   en spark.components.supportClasses :: SkinnableComponent / addChild () [E: \ dev \ gumbo_beta2 \ marcos \ projects \ src \ \ chispa componentes chispa \ \ supportClasses \ SkinnableComponent.as: 966]
   al principal / privada: init / carga () [C: \ Documents and Settings \ ufk \ Adobe Flash Builder Beta 2 \ xpogames-toolkit-test \ src \ main.mxml: 22]

Si cambio addChild() a addElement(), recibo el siguiente error de compilación:

  

1067: coerción implícita de un valor de tipo flash.display: Cargador para un tipo mx.core sin relación: IVisualElement. main.mxml ruta / línea dir 22 Flex Problema

Alguna idea de cómo resolver este problema?

¿Fue útil?

Solución 2

bien en constructor de flash de 4 versión completa, no hay ningún this.rawChildren.

El mejor enfoque para resolver el problema sería convertir cada clase requerida para un componente de flexión y para utilizarlo en su aplicación Flex:

  1. descargar e instalar kit de componentes de Flex http://www.adobe.com/cfusion/entitlement/index. cfm? e = flex_skins

  2. crear un clip de película

  3. convertir al componente flex

  4. añadir las funciones correspondientes a esta clase

un esqueleto para una clase que está unido a un clip de película que está a punto de ser convertido en un componente de la flexión:

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

Otros consejos

Crea otro recipiente para colocar la DisplayObject en:

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

Probar. Se trabajará

this.rawChildren.addChild (LDR) debe trabajar

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top