swf per Combobox [Flash 10]
| Beiträge: 9 Registriert: Apr 2011
| 11.02.2012, 13:40
Guten Tag,
ich habe eine Frage;
Das AS gibt nach Auswahl xml-Daten aus.
ActionScript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | 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 XMLDataGrid extends MovieClip {
var dg:DataGrid;
var cb:ComboBox;
var urlLoader:URLLoader = new URLLoader();
var loadButton:Button;
var bookXML:XML;
public function XMLDataGrid():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,100);
addChild(dg);
}
private function setupComboBox():void {
cb = new ComboBox();
//die elemente der comboBox
cb.addItem({label: "Konzept ; Darwinistische Säuberung" });
cb.addItem({label: "Test1" });
cb.addItem({label: "Test2" });
//position der combobox
cb.move(200,50);
cb.width=220;//breite der konzeptauswahl
addChild(cb);
}
private function setupButton():void {
loadButton = new Button();
loadButton.label = "Load Books";
loadButton.addEventListener(MouseEvent.CLICK, loadBooks);
loadButton.x = 200;
loadButton.y = 325;
addChild(loadButton);
}
private function loadBooks(e:Event):void {
//Hier wird die cb.selectedLabel gibt einen String zurück, genannt toLowerCase
//und append. xml, es d.h. flash.xml, ajax.xml
urlLoader.load(new URLRequest(cb.selectedLabel.toLowerCase()+".xml"));
urlLoader.addEventListener(Event.COMPLETE, populateGrid);
}
private function populateGrid(e:Event):void {
var booksXML:XML = new XML( e.target.data);
var booksLength:int = booksXML.book.length();
dg.removeAll();
for (var i:int =0; i<booksLength; i++) {
dg.addItem({Tag: booksXML.book[i].tag, Datum: booksXML.book[i].datum, Spiele: booksXML.book[i].spiele, Bets: booksXML.book[i].bets, Transakt: booksXML.book[i].transakt, Saldo: booksXML.book[i].saldo, Gewinn_Euro: booksXML.book[i].gewinn_euro, Gewinn_Prozent: booksXML.book[i].gewinn_prozent});
}
}
}
}
|
Ich möchte nun, dass wenn in der Combobox "Test1" ausgewählt wird, die "Film1.swf" geladen und angezeigt wird,- bzw bei "Test2" die "Test2.swf"
Kann mir jemand den as3 Zusatz schreiben und wo er eingefügt wird? | | | Beiträge: 9 Registriert: Apr 2011
Themenautor/in
| 12.02.2012, 12:55
Hallo, ich bin es nochmals :-)
Ich bekomme es einfach nicht hin, habe mal "Arbeitsdateien" hochgeladen,- vielleicht habe ich mich auch nur unglücklich ausgedrückt.
Wäre echt nett, wenn mir jemand helfen könnte.
die zip hat 700 kb, daher der externe linK
http://www.uploadarea.de/files/x38844zdmh2kxs2d7ulysjru5.zip | | | Beiträge: 9 Registriert: Apr 2011
Themenautor/in
| 13.02.2012, 12:17
Hallo,
ich habe nun dieses Skript-Schnippel entdeckt;
ActionScript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | function changeHandler(e:Event):void
{
/* nav */
trace(e.currentTarget.selectedItem.label);
switch(e.currentTarget.selectedItem.label)
{
case "test1":
loadSWF("test1.swf");
break;
case "test2":
loadSWF("test2.swf");
break;
case "test3":
loadSWF("test3.swf");
break;
}
}
function loadSWF(path:String):void
{
try
{
loader.load(new URLRequest(path));
}
catch(err:Error)
{
trace("err_msg: " + err.message);
}
return;
}
function initHandler(e:Event):void
{
eraseLastContent(container);
if(e.target.actionScriptVersion == 3)
{
var movieAVM2:MovieClip = container.addChild(e.target.content) as MovieClip;
movieAVM2.gotoAndStop(1);
}
else
{
container.addChild(loader);
}
trace("container Childs: " + container.numChildren);
return;
}
function eraseLastContent(container:Sprite):void
{
if (container.numChildren)
{
var lastContent:DisplayObject = container.removeChildAt(0);
lastContent = null;
}
return;
}
function progressHandler(e:ProgressEvent):void
{
trace("progressHandler: " + e.currentTarget.bytesLoaded / e.currentTarget.bytesTotal * 100);
return;
}
function ioHandler(e:IOErrorEvent):void
{
trace(e.text);
return;
}
init();
|
ist das der richtige Ansatz oder völlig daneben? | |
| Ähnliche Beiträge zum Thema | |
|
Flashhilfe.de Flash Platform Tipps & Tutorials Flash Platform Andere Programmiersprachen Jobangebote Diskussionen
Flashhilfe News
Regeln & Bedingungen
|