| |||||||
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: Mar 2007
Beiträge: 2
|
Hallo an alle, ich habe folgendes Problem: Ich habe ein Movie kreiert, in dem die Buttons einer Navigation per AS und einer XML Datei erzeugt werden. In der XML Datei stehen die Aufschrift für die Buttons und die Datei, die später geladen werden soll: Code: <?xml version="1.0" encoding="utf-8"?>
<mainmenu>
<menuitem name="HOME" loader="rare_home.swf" />
<menuitem name="ÜBER RARE" loader="rare_theband.swf" />
<menuitem name="OnSTAGE" loader="rare_onstage.swf" />
<menuitem name="CDs" loader="rare_cds.swf" />
<menuitem name="FOTOALBUM" loader="rare_fotos.swf" />
<menuitem name="GÄSTEBUCH" loader="rare_guestbook.swf" />
<menuitem name="LINKS" loader="rare_links.swf" />
</mainmenu> Pro Array-Position wird dann ein Button mit der korrekten Aufschrift erzeugt. Mein Problem ist jetzt nur, dass ich es nicht hin bekomme, dem Button die zu öffnende Datei zu übergeben, also eine onPress() Handler zu erstellen in den die korrekte Datei per loadMovie() geöffnet wird: Diese Script habe ich auf _root im ersten Bild erzeugt: Code: // Ausrichtung des gesamten Films
stage.scaleMode = "noscale";
stage.align = "B";
stage.showMenu = false;
// welcher Button wurde zuletzt geklickt?
var pressedButton = null;
stop();
// Hauptnavigation laden
var xmlMainNavi = new XML();
xmlMainNavi.ignoreWhite = true;
xmlMainNavi.load("../xml/rare.mainnavi.xml");
xmlMainNavi.onLoad = function(success) {
xmlMainNavi_namen = [];
xmlMainNavi_loader = [];
if (success) {
anzahl = xmlMainNavi.firstChild.childNodes.length;
// Navi-Punkte in Arrays schreiben
for (var i=0; i<xmlMainNavi.firstChild.childNodes.length; i++) {
xmlMainNavi_namen[i] = xmlMainNavi.firstChild.childNodes[i].attributes.name;
xmlMainNavi_loader[i] = xmlMainNavi.firstChild.childNodes[i].attributes.loader;
}
gotoAndPlay(2);
}
}
// Globale Funktion zum Faden von Instanzen
_global.fade = function(mc, nr) {
mc.onEnterFrame = function() {
this._alpha += nr;
if (this._alpha>100 || this._alpha<0) {
delete this.onEnterFrame;
}
};
};
// Globale Funktion die beim Klick auf einen Button ausgeführt werden kann
// und einen MC ins Movie lädt.
_global.onClick = function(distance,button) {
if(pressedButton != null) {
pressedButton.gotoAndPlay(1);
}
pressedButton = button;
trace(distance);
trace(xmlMainNavi_loader[distance]);
leerFuerInhalt.loadMovie(xmlMainNavi_loader[distance]);
} Code: stop();
// Hauptnavigation Button einfügen
var old_y = 806;
var old_x = 218;
var my_length = 143;
for(var j=0; j<xmlMainNavi_namen.length; j++) {
//neuen X-Wert errechnen
var new_x = old_x + (my_length * j);
// Leeren Movie-Clip erstellen
var myMC = this.createEmptyMovieClip("hm_but_mc"+j,j+1);
// Alpha = 0 setzen
myMC._alpha = 0;
// X und Y zuweisen
myMC._x = new_x;
myMC._y = old_y;
// Button hinzufügen
// Alpha = 0%
var myBut = myMC.attachMovie("Hauptmenu_Button", "hm_but"+j, j+10, {_y:0,_x:0});
// Textfeld hinzufügen
myMC.createTextField("hm_but_text"+j, j+100, -61, -11, 122, 18);
var myButFld = myMC["hm_but_text"+j];
with(myButFld) {
text = xmlMainNavi_namen[j];
multiline = false;
wordWrap = false;
selectable = false;
border = false;
myMCtf = new TextFormat();
myMCtf.font = "Verdana";
myMCtf.size = 11;
myMCtf.align = "center";
myMCtf.color = 0xFFFFFF;
myMCtf.bold = true;
myButFld.setTextFormat(myMCtf);
}
// Butten einfaden
fade(myMC,30);
}
// Weiter machen
gotoAndPlay(26); Code: stop();
var thisNum = null;
function aktiv() {
gotoAndPlay(1);
}
function mouseOver() {
gotoAndPlay(2);
}
function pressDown() {
gotoAndPlay(11);
delete this.onRollOver;
delete this.onRollOut;
delete this.onPress;
}
function mouseOut() {
gotoAndPlay(13);
}
this.onRollOver = function() {
mouseOver();
}
this.onRollOut = function() {
mouseOut();
}
this.onPress = function() {
onClick(thisNum,this);
pressDown();
} Ich weiß aber nicht wie. Ich im AS des Buttons schon eine variable thisNum erstellt. Aber wie kann ich ihr einen Wert übergeben? Wäre echt prima wenn mir da jemand helfen kann. Ich verzweifle noch an der Sache. |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: May 2006
Beiträge: 23
|
hi, var myBut = myMC.attachMovie("Hauptmenu_Button", "hm_but"+j, j+10, {_y:0,_x:0}); und dann den wert setzen: myBut.thisNum = j; im as des buttons kannst du dann mit this.thisNum auf den wert zugreifen... gruesse unbenannt |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |