| |||||||
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: Sep 2003
Beiträge: 34
| Farbe der Buttons bei XML News Menue
Hallo zusammen, also ich hab jetzt viel gelesen, aber die richtige Lösung für mein Problem finde ich nicht. Ich bin dabei mir ein XML News Sytem zu bauen. Habe dazu das hier im Board veröffentlichete Tutorial zu rate gezogen. Soweit ganz gut, die News werden aus dem XML File gelesen und dargestellt. Jetzt bin ich dran, den Überschriften bei RollOver und Rollout und Releas eine Farbe zuzuordnen. Das geht auch, nur auf mein Release folgt ja immer gleich das Rollout und somit verschwindet die Farbe des gedrückten Buttons gleich wieder. Wie stelle ich es an, dass der Button gedrückt bleibt. Ich weiss dass sich beim drücken eine variable mitgeben könnte, verzweifle aber im moment an der Umsetzung. Hier mein AS: Im attachten Movie News befindet sich ein MC namens "linkage". Dieses mc wwill ich farblich verändern. Code:
stop();
//
MovieClip.prototype.setRGB = function(col){
(new Color(this)).setRGB(col);
};
//
for (var i =0;i<anzahl; i++) {
this.head.attachMovie("newsheader", "news" + i, 11 + i, { _x: 14, _y: 30+(i*25) } );
this.head["news"+i].date.text = XMLdaten_date[i];
this.head["news"+i].date.embedFonts = true;
this.head["news"+i].date1.text = XMLdaten_date[i];//Schatten
this.head["news"+i].date1.embedFonts = true;
this.head["news"+i].header.text = XMLdaten_header[i];
this.head["news"+i].header.embedFonts = true;
this.head["news"+i].header1.text = XMLdaten_header[i];//schatten
this.head["news"+i].header1.embedFonts = true;
this.head["news"+i].linkage.onRollOver = function(){
this.setRGB(0x777777);
}
this.head["news"+i].linkage.onRollOut = function(){
this.setRGB(0x666666);
}
this.head["news"+i].linkage.onRelease = function(){
this.setRGB(0x222222);
}
} Hoffe auf Hilfe... Danke bullys Geändert von bullys2003 (05-12-2005 um 19:17 Uhr) |
| | |
| | #2 (permalink) |
| squirlish Registriert seit: Mar 2004 Ort: CH
Beiträge: 492
| Code: this.head["news"+i].linkage.onRollOver = function(){
this.setRGB(0x777777);
}
this.head["news"+i].linkage.onRollOut = function(){
if(thist.state != "released") { //abfrage ob der button schon gedrückt wurde
this.setRGB(0x666666);
}
}
this.head["news"+i].linkage.onRelease = function(){
this.setRGB(0x222222);
this.state = "released";//der button wird gedrückt und der wert für die variabel gesetzt
} |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Sep 2003
Beiträge: 34
|
danke für die Hilfe, aber leider gehts das so auch nicht, das war das, was ich auch schon probiert hatte.. ich hänge mal die fla an... hab ein trace nach dem buttonpress angehängt... es zeigt "state undefined" an. Das ist genau der Punkt, an dem ich verzweifle... Danke für die weitere Hilfe |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Sep 2003
Beiträge: 34
|
auch das geht nicht.. ich bin am ende.. so schwer kann das doch nicht sein.. bitte heft ...) Code: stop();
//
MovieClip.prototype.setRGB = function(col){
(new Color(this)).setRGB(col);
};
//
for (var i =0;i<anzahl; i++) {
this.head.attachMovie("newsheader", "news" + i, 11 + i, { _x: 14, _y: 30+(i*25) } );
this.head["news"+i].date.text = XMLdaten_date[i];
this.head["news"+i].date.embedFonts = true;
this.head["news"+i].date1.text = XMLdaten_date[i];//Schatten
this.head["news"+i].date1.embedFonts = true;
this.head["news"+i].header.text = XMLdaten_header[i];
this.head["news"+i].header.embedFonts = true;
this.head["news"+i].header1.text = XMLdaten_header[i];//schatten
this.head["news"+i].header1.embedFonts = true;
//this.head["news"+i].linkage.onEnterFrame = function (){
//delete this.onEnterFrame;
this.head["news"+i].linkage.onRollOver = function(){
this.state = "rollover";
trace(this.state);
}
this.head["news"+i].linkage.onRollOut = function(){
this.state = "rollout";
trace(this.state);
}
this.head["news"+i].linkage.onPress = function(){
this.state = "reset";//der button wird gedrückt und der wert für die variabel gesetzt
trace(this.state);
}
this.head["news"+i].linkage.onRelease = function(){
this.state = "released";//der button wird gedrückt und der wert für die variabel gesetzt
trace(this.state);
}
if(this.state = "rollover") { //abfrage ob der button schon gedrückt wurde
this.head["news"+i].linkage.setRGB(0x777777);
}
if(this.state = "rollout") { //abfrage ob der button schon gedrückt wurde
this.head["news"+i].linkage.setRGB(0x666666);
}
if(this.state = "released") { //abfrage ob der button schon gedrückt wurde
this.head["news"+i].linkage.setRGB(0x222222);
}
if(this.state = "reset") { //abfrage ob der button schon gedrückt wurde
this.head["news"+i].linkage.setRGB(0x666666);
}
//}
} |
| | |
| | #6 (permalink) |
| . Registriert seit: May 2003 Ort: bayern
Beiträge: 1.117
|
try this: PHP-Code:
__________________ [mooseMash] |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Sep 2003
Beiträge: 34
|
Hi mooseMash, danke für die Hilfestellung... das ist ein schöner sauberer Ansatz und die traces sind jetzt sehr übersichtlich. Leider bleibt der gedrückte Button immer noch nicht gefärbt, da ja auf das release gleich wieder das rollout folgt... ist denn das so schwer ? ich hätte gedacht, dass es soeine funktion schon in 1000 scripten gibt und dass meine newb frage mit 1-2 post erledigt gewesen wäre )gruss bullys achja: bitte um weitere vorschläge... |
| | |
| | #8 (permalink) |
| . Registriert seit: May 2003 Ort: bayern
Beiträge: 1.117
|
schon ne blöde sache, das diese dinge auch immer genau das tun was man ihnen sagt, so wie du es angelegt hast kann auch nichts anderes passieren, wenn ich dich richtig verstehe möchtest du das nach release die farbänderung erhalten bleibt, auch bei rollout und wenn ich jetzt auf einen anderen button clicke bekommt der die "active" farbe und der alte button erhält die "passive" farbe? okay, davon ausgehend das dem so ist: 1) du brauchst einen status, der markiert ob ein button activ ist oder nicht, im folgenden script this.clicked, der ist entweder wahr oder falsch, die anderen events, onRollOver, onRollOut, onPress machst du davon abhängig ob der status wahr oder falsch ist, nur wenn der status falsch ist werden sie ausgeführt. 2)du brauchst eine function die dir die einstellung des alten buttonws wiedre herstellt, im folgenden activateClickStatus, ich durchlaufe hier einfach sämtliche buttons und versetze sie in die ausgangslage, nur den gedrückten button mache ich activ.. hope it works PHP-Code:
__________________ [mooseMash] |
| | |
| | #9 (permalink) |
| not-A-pro :D Registriert seit: Sep 2005 Ort: Würzburg/Bayern
Beiträge: 109
|
rollover farbwert = rollout farbwert? oder etwa (pseudocode ![]() rollover änder farbwert nach xxx i=0 i++ wenn i >0 setze farbwert gleich 000 sonst >rollout... änder farbwert nach yyy 000 ist hier dein gewünschter farbwert, ein rollout findet nicht statt wenn ein rollover da war
__________________ Von allen Dingen die mir verloren gegangen, bin ich am meisten an meinem Verstand gehangen! Mit dem ersten Blackout fängt es erst richtig an! http://www.reich-durchs-web.de |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |