| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| 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});
}
}
}
} 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. |
| | |
| | #2 (permalink) |
| 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(); wie spreche ich die variable cb (Combobox) an? |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| datagrid |
| Themen-Optionen | |
| Ansicht | |
| |
Ä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 |