2010-11-15 7 views
0

Je charge un fichier SWF à l'aide d'un chargeur simple, mais il modifie la position et la taille des applications principales x/y.Comment empêcher un chargeur de modifier la position et la taille de mes applications?

Quel chargeur dois-je utiliser pour charger un swf qui maintiendra la taille de position de mon application?

var loader:Loader = new Loader(); 
loader.contentLoaderInfo.addEventListener(Event.INIT, function handleInit(event:Event):void{ 
    var UIDesigner:UIComponent = new UIComponent(); 
    UIDesigner.addChild(event.target.loader.content); 
    UIDesigner.id = "id_sample"; 
    ApplicationObject.Instance.addElementAt(UIDesigner,0) 

    event.target.content.addEventListener(FlexEvent.APPLICATION_COMPLETE, function applicationCompleteHandler(event:Event):void{ 
     var app:SystemManager = event.target as SystemManager; 
     var Designer:SkinnableContainer = app.application as SkinnableContainer; 
     Designer.id = "id_test"; 
     ApplicationObject.Instance.removeElementAt(0); 
     pTabCon.addChild(Designer as SkinnableContainer); 
     pTabCon.horizontalScrollPolicy = "off"; 
     pTabCon.verticalScrollPolicy = "off"; 
     Parent.id_ComponentsTab.addChild(pTabCon); 
     Parent.id_ComponentsTab.selectedChild = pTabCon; 
     trace("swf loaded successfully"); 
     ApplicationObject.Instance.m_ApplicationList.addItem(Designer); 
    });       
}); 

Répondre

1

Le problème n'est pas le chargeur, mais comment vous l'utilisez et, en particulier, comment vous ajoutez le contenu à la scène.

Un DisplayObjectContainer changera de taille en fonction de son contenu. Par exemple, si vous chargez un MovieClip avec une largeur de 400 dans un autre MovieClip avec une largeur de 200, la largeur de MovieClip qui le contient deviendra 400. C'est un comportement attendu.

Il est possible de modifier ce comportement en utilisant le masquage par exemple ou en modifiant les propriétés du contenu chargé avant d'ajouter du contenu à la scène.

En ce qui concerne les propriétés x & y, cela aurait à voir avec votre code. Le chargement du contenu ne doit pas modifier les propriétés x & y de l'objet conteneur.

Si vous modifiez votre question et ajoutez un exemple de code, nous pourrons peut-être vous donner une aide plus spécifique.

0

Est-ce que le swf que vous chargez appelle root ou peut-être stage? J'ai eu un tel problème avec un fond animé swf pour mon application. et comment le charger?

màj: vous pouvez toujours utiliser NO_SCALE

0
loadSWFFile("resources/awords/myswf.swf"); 
private function loadSWFFile(fileURL:String):void 
{ 
    var loader:Loader = new Loader(); 
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleSWFLoadComplete0); 
    loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler0); 
    loader.load(new URLRequest(fileURL)); 
} 
private function handleSWFLoadComplete0(evt:Event):void 
{ 
    loaderWidth = evt.currentTarget.loader.width; 
    loaderHeight = evt.currentTarget.loader.height; 

    // Now set the width and height of target component same as loaderWidth and loaderHeight respectively. 
} 
private function ioErrorHandler0(e:IOErrorEvent):void 
{ 
    mx.controls.Alert.show("Unable to load", "IOError", 0); 
} 
Questions connexes