Zurück   Flashforum > Flash > Flash Einsteiger

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-02-2012, 07:43   #1 (permalink)
wb1
Neuer User
 
Registriert seit: Feb 2012
Beiträge: 3
swf über Combobox starten

Guten Tag,
ich habe bereits in einem anderen Forum nach einer Lösung gesucht, aber vielleicht bekomme ich sie hier,- folgendes:
Ich rufe über ein as3 datagrid etc. auf, welches in einem Clip "mc" angezeigt wird.
Ich treffe die Wahl, welche xml-Daten angezeigt werden.
Ich lade die xml-Daten.


hier der code:

Code:
package {
	import flash.display.MovieClip;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.events.MouseEvent;
	import flash.events.Event;
	import fl.controls.DataGrid;
	import fl.controls.ComboBox;
	import fl.controls.Button;

	public class Konzept_as extends MovieClip {
		var dg:DataGrid;
		var cb:ComboBox;
		var urlLoader:URLLoader = new URLLoader();
		var loadButton:Button;
		var kontoXML:XML;

		public function Konzept_as():void {
			setupGrid();
			setupComboBox();
			setupButton();
		}
		private function setupGrid():void {
			dg=new DataGrid();

			dg.addColumn("Tag");
			dg.addColumn("Datum");
			dg.addColumn("Spiele");
			dg.addColumn("Bets");
			dg.addColumn("Transakt");
			dg.addColumn("Saldo");
			dg.addColumn("Gewinn_Euro");
			dg.addColumn("Gewinn_Prozent");
			//gröpe des datagrid
			dg.setSize(650,100);
            //wieviel Zeilen im datagrid zu sehen sind
			dg.rowCount=5;
			//Wenn ich Spalten hinzufüge, werden sie in ein Array gestellt
			//hier geb ich die Spaltebreiten ein
			dg.columns[0].width=50;
			dg.columns[1].width=90;
			dg.columns[2].width=50;
			dg.columns[3].width=50;
			dg.columns[4].width=90;
			
            //die Position des datagrid
			dg.move(0,150);

			mc.addChild(dg);
		}
		private function setupComboBox():void {
			cb = new ComboBox();
            //die elemente der comboBox
			cb.addItem({label: "test1" });
			cb.addItem({label: "test2" });			
			cb.addItem({label: "test3" });
            //position der combobox
			cb.move(320,40);//position combobox
			cb.width=210;//breite der konzeptauswahl

			mc.addChild(cb);
		}
		private function setupButton():void {
			loadButton = new Button();
			loadButton.label = "History laden";
			loadButton.addEventListener(MouseEvent.CLICK, loadKonzepte);
			loadButton.x = 545;
			loadButton.y = 40;
			mc.addChild(loadButton);


		}
		private function loadKonzepte(e:Event):void {
			//Hier wird die cb.selectedLabel gibt einen String zurück, genannt toLowerCase
			//und append. xml, es d.h. test1.xml, test2.xml
			urlLoader.load(new URLRequest(cb.selectedLabel.toLowerCase()+".xml"));
			urlLoader.addEventListener(Event.COMPLETE, populateGrid);

		}
		private function populateGrid(e:Event):void {
			var konzepteXML:XML = new XML( e.target.data);
			var konzepteLength:int = konzepteXML.konto.length();
			
            dg.removeAll();
			for (var i:int =0; i<konzepteLength; i++) {
				dg.addItem({Tag: konzepteXML.konto[i].tag, Datum: konzepteXML.konto[i].datum, Spiele: konzepteXML.konto[i].spiele, Bets: konzepteXML.konto[i].bets, Transakt: konzepteXML.konto[i].transakt, Saldo: konzepteXML.konto[i].saldo, Gewinn_Euro: konzepteXML.konto[i].gewinn_euro, Gewinn_Prozent: konzepteXML.konto[i].gewinn_prozent});
			}
		}
	}
}
So weit, so gut.
Mein Wunsch ist es nun, dass wenn ich z.B. label: "test1" wähle, nicht nur die xml-Daten angezeigt werden, sondern ebenfalls eine externe swf namens test1.swf.
also:
label: test1 = test1.swf
label: test2 = test2.swf
label: test3 = test3.swf

Ist das umzusetzen? Kann mir jemand dabei vielleicht helfen und den as3-Zusatz nennen?

Ich bin in actionscript 3 wirklich nicht erfahren und brauche unbedingt Hilfe.
Ich habe im Anhang mal "Arbeitsdateinen" angefügt,- zum besseren Verständnis.
Wäre nett, wenn mir jemand helfen könnte.
Angehängte Dateien
Dateityp: zip Konzepte.zip (747,7 KB, 0x aufgerufen)
wb1 ist offline   Mit Zitat antworten
Alt 13-02-2012, 11:34   #2 (permalink)
wb1
Neuer User
 
Registriert seit: Feb 2012
Beiträge: 3
ein Ansatz?

Ich habe nun hier im Flash-Einsteiger Forum das Script-Schnipsel entdeckt;

Code:
var loader:Loader;
 
var pathsByLabel:Object = {
    "test1": "test1.swf",
    "test2":"test2.swf",
    "test3":"test3.swf"
}
 
function init():void {
    addChildAt(container = new Sprite(), 0);
    for (var label:String in pathsByLabel) combobox.addItem( { label: label } );
    combobox.addEventListener(Event.CHANGE, changeHandler);
}
 
function changeHandler(e:Event):void {
    var label:String = e.currentTarget.selectedItem.label;
    if (label in pathsByLabel) loadSWF(pathsByLabel[label]);
}
 
function loadSWF(path:String):void {
    
    if (loader) {
        loader.unloadAndStop();
        loader.contentLoaderInfo.removeEventListener(Event.INIT, initHandler);
        loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, ioHandler);
        loader.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, progressHandler);
        if (loader.parent) loader.parent.removeChild(loader);
    }
    
    loader = new Loader();
    loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler);
    loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioHandler);
    loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);
    
    try {
        loader.load(new URLRequest(path));
    } catch (err:Error) {
        trace("err_msg: " + err.message);
    }
}
 
function initHandler(e:Event):void {
    // Was auch immer Du bei Init tun willst
}
 
function progressHandler(e:ProgressEvent):void {
    trace("progressHandler: " + e.currentTarget.bytesLoaded / e.currentTarget.bytesTotal * 100);
}
 
function ioHandler(e:IOErrorEvent):void {
    trace(e.text);
}
 
init();
ist das der richtige Ansatz?
wie spreche ich die variable cb (Combobox) an?
wb1 ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
datagrid

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
Handcursor über ComboBox? Tarantoga Flash 8 7 25-01-2006 11:47
download über AS starten Analogic ActionScript 1 2 27-10-2003 13:25
über flash avi starten markus78 Flash 4 und Flash 5 3 27-06-2003 10:59
Exe über Flash starten Reehna ActionScript 1 13 03-02-2003 16:34
MC über Button starten SnakeR007 Flash MX 6 31-10-2002 15:43


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:24 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele