Zurück   Flashforum > Flex und AIR > Flex allgemein

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 31-05-2010, 07:23   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 10
flex in flash

Hallo zusammen,

ich beiße mir gerade an einem Problem die Zähne aus und komme einfach nicht weiter.

Ich versuche zur Zeit über ein kleines Flash eine Flex-Applikation zu laden. Das laden an sich funktioniert soweit und ist auch kein Problem. Nur die Flex-Applikation bekommt den resize nicht ordentlich hin, auch die Scrollbalken werden nicht angezeigt. Hab schon überall gesucht und komm und komm einfach nicht weiter. Vlt. hat einer von euch so was schon mal gemacht und könnten mir ein bisschen helfen.

Anbei ein Beispiel wie ich das Laden im Moment veranstalte. Das Beispiel hab ich auch aus dem Netz gefischt und noch ein wenig angepasst.

Viele Grüße
seb

Code:
package {

	import flash.display.Loader;
	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.Event;
	import flash.net.URLRequest;
	import flash.system.ApplicationDomain;
	import flash.system.LoaderContext;
		
	public class Boot extends Sprite {
	        /**
	         *  The URL of the application SWF that this bootstrap loader loads.
	         */
	        private static const applicationURL:String = "mein.swf";
	
	        /**
	         *  Constructor.
	         */
	        public function Boot() {
	                super();
	
	                if (ApplicationDomain.currentDomain.hasDefinition("mx.core::UIComponent"))
	                        throw new Error("UIComponent should not be in the bootstrap loader.");
	
	                stage.scaleMode = StageScaleMode.NO_SCALE;
	                stage.align = StageAlign.TOP_LEFT;
	
	                if (!stage)
	                        isStageRoot = false;
	
	                root.loaderInfo.addEventListener(Event.INIT, initHandler);
	        }
	
	        /**
	         *  The Loader that loads the main application's SWF file.
	         */
	        private var loader:Loader;
	
	        /**
	         *  Whether the bootstrap loader is at the stage root or not.
	         *  It is only the stage root if it was the root
	         *  of the first SWF file that was loaded by Flash Player.
	         *  Otherwise, it could be a top-level application but not stage root
	         *  if it was loaded by some other non-Flex shell or is sandboxed.
	         */
	        private var isStageRoot:Boolean = true;
	
	        /**
	         *  Called when the bootstrap loader's SWF file has been loaded.
	         *  Starts loading the application SWF specified by the applicationURL property.
	         */
	        private function initHandler(event:Event):void {
	        		loader = new Loader();
	                addChild(loader);
	                loader.load(new URLRequest(applicationURL),new LoaderContext(false, this.loaderInfo.applicationDomain));
	                loader.addEventListener("mx.managers.SystemManager.isBootstrapRoot", 
	                        bootstrapRootHandler);
	                loader.addEventListener("mx.managers.SystemManager.isStageRoot", 
	                        stageRootHandler);
	                loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadCompleteHandler);
	                loader.contentLoaderInfo.addEventListener(Event.ADDED_TO_STAGE, onApplicationAdded);

	
	                stage.addEventListener(Event.RESIZE, resizeHandler);
	                //resizeHandler();
	        }
	
	        private function bootstrapRootHandler(event:Event):void {
	                // Cancel event to indicate that the message was heard.
	                event.preventDefault();
	        }
	
	        private function stageRootHandler(event:Event):void {
	                // Cancel event to indicate that the message was heard.
	                if (!isStageRoot)
	                        event.preventDefault();
	        }
	        
	        private function loadCompleteHandler(evt:Event):void {
	        	loader.content.addEventListener(Event.ADDED_TO_STAGE, onApplicationAdded);
				loader.content.addEventListener("applicationComplete", onApplicationComplete);
			}
			
			private function onApplicationAdded(e:Event):void {
				Object(loader.content).setActualSize(stage.stageWidth, stage.stageHeight);
			}
			
			private function onApplicationComplete(e:Event):void {
				//resizeHandler();
			}

	
	        private function resizeHandler(event:Event=null):void {	        		
	                loader.width 	= stage.stageWidth;
	                loader.height 	= stage.stageHeight;
	                Object(loader.content).setActualSize(stage.stageWidth, stage.stageHeight);
	                
	                if (loader.content && Object(loader.content).application)
	                	Object(Object(loader.content).application).setActualSize(stage.stageWidth, stage.stageHeight);
	                	
	                
	        }
	}

}
sebflex ist offline   Mit Zitat antworten
Alt 31-05-2010, 07:51   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.146
Für die Richtung ist Flex nicht gedacht. Das ist schlicht weg ein schlechter Ansatz. Flex soll genau das übernehmen.
Omega Psi ist offline   Mit Zitat antworten
Alt 31-05-2010, 08:06   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 10
Vielen Dank, für die schnelle Antwort.

Ich weiß, dass es nicht optimal ist und Flex das eigentlich übernehmen sollte. Dieses Konstrukt brauche ich jedoch für die Einbindung in ein CMS. Dadurch kann ich meine Flex-Applikationen ggf. austauschen.

Das ganze könnte ich auch mit einer weitere Flex-Applikation bewerkstelligen, die die eigentlich Flex-Anwendung lädt, jedoch wird die über 100kb groß. Wohingegen das Flash gerade mal 10kb groß wird.

Wie gesagt das Laden usw. funktioniert einwandfrei. Nur das Resizing funktioniert nicht sauber.

Vlt. hat doch noch jemand eine Idee.

Viele Grüße
Seb
sebflex ist offline   Mit Zitat antworten
Alt 31-05-2010, 08:22   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.146
Naja, die zu ladende Flex Applikation musst du doch auch irgendwie angeben. Baue dann doch lieber eine generische Form der Einbindung mit JavaScript.
Omega Psi ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Flex/Flash Debugger stürzt in Flex immer ab Wuschey Flex allgemein 7 15-11-2009 14:39
Adobe Flex User Group Hamburg: Flex und BlazeDS marc Konferenzen und Treffen 6 04-02-2009 08:42
Adobe Flex User Group München: Flex Builder 4 & Flash Catalyst Preview (27.01.09) marc Konferenzen und Treffen 0 13-01-2009 13:37
Vortrag: Next Flex Workflow - Flex 4 und Flash Catalyst (Sven Claar) marc FFK09 0 12-12-2008 19:54
Flex für nicht kommerziellen Einsatz kostenlos erhältlich (inkl. Flex Builder) bort Flex allgemein 0 05-10-2004 16:37


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:47 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele