| |||||||
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 2003 Ort: Erde
Beiträge: 601
| Problem bei Button Funktion Schaut euch erstmal die bsp swf an Ich kann mit den unteren 2 Buttons immer 15 Bilder vor und zurück gehen. Wenns aber mehr 15 Bild Felder werden dann muss man länger auf den Button klicken, was nicht sehr praktisch ist. Nun habe ich ein Nummernfeld gemacht, damit man die Felder schneller wechseln kann. zb. Wenn ich auf 2 klicke, dann sollen Bilder von 16-30 angezeigt werden. Klick ich auf 3, dann werden Bilder von 31-45 angezeigt. Ich hoffe ihr wisst, wie ich das meine. Ich markiere, die Stelle, die verändert werden soll mit rot.. vielleicht könnt ihr mir helfen..? Bisher werden die Zahlen ganz normal von 1 bis maximal angezeigt, es sollen aber immer 33iger Schritte sein. bsp. Wenn ich 60 Bilder habe, dann sollen nur die Zahlen (Buttons) 1 und 2 erscheinen... Code: fscommand("allowScale", false);
this.butVor.useHandCursor = false;
this.butZuruck.useHandCursor = false;
this.butVor1.useHandCursor = false;
this.butZuruck1.useHandCursor = false;
url = "test.xml";
EX = new XML();
EX.ignoreWhite = true;
EX.load(this.url);
EX.onLoad = function(ready) {
if (ready) {
tn = EX.firstChild.childNodes;
delete EX;
movmc();
movmv1();
movmv();
}
};
this.butZuruck._x = 20;
this.butZuruck._y = 285;
this.butVor._x = 25;
this.butVor._y = 285;
this.butZuruck1._x = 20;
this.butZuruck1._y = 270;
this.butVor1._x = 25;
this.butVor1._y = 270;
function movmv1() {
j = 0;
for (i=aktNr; i<maxNr; i++) {
numbers = "number"+j;
attachMovie("number", numbers, 2*j);
if (tn[i] != undefined) {
this[numbers]._y = 292;
this[numbers]._x = 5+this[numbers]._height*j*1;
this[numbers].numbertxt.text = i+1;
} else {
this[numbers].removeMovieClip();
}
j++;
}
}
function movmv() {
j = 0;
for (i=aktAnzeige; i<maxAnzeige; i++) {
link = "links"+j;
attachMovie("links", link, 2*j+1);
if (tn[i] != undefined) {
link.duplicateMovieClip(link, i);
this[link]._x = 10+(j%5)*140;
this[link]._y = 20+Math.floor(j/5)*76;
trace(this[link]._y);
this[link].txtnr.text = i+1;
this[link].bild = tn[this[link].txtnr.text-1].firstChild.attributes.bild;
} else {
this[link].removeMovieClip();
}
j++;
}
}
function movmc() {
anzahl = tn.length;
max = 5;
maxAnzeige = 15;
maxNr = 33;
aktAnzeige = 0;
aktNr = 0;
}
butVor.onRelease = function() {
if (aktAnzeige<anzahl-15) {
j = 0;
aktAnzeige += 15;
maxAnzeige += 15;
movmv();
}
};
butVor1.onRelease = function() {
if (aktNr<anzahl-33) {
j = 0;
aktNr += 33;
maxNr += 33;
movmv1();
}
};
butZuruck.onRelease = function() {
if (aktAnzeige>1) {
j = 0;
aktAnzeige -= 15;
maxAnzeige -= 15;
movmv();
}
};
butZuruck1.onRelease = function() {
if (aktNr>1) {
j = 0;
aktNr -= 33;
maxNr -= 33;
movmv1();
}
};function movbt(x, y) {
bt = "button"+k;
attachMovie("button", bt, 10);
this[bt]._x = x;
this[bt]._y = y;
this[bt].onRelease = function() {
if (aktAnzeige>1) {
j = 0;
aktAnzeige -= 10;
maxAnzeige -= 10;
movmv();
}
};
} |
| | |
| | #2 (permalink) | |
| Gast
Beiträge: n/a
| Zitat:
Ansonsten bieten sich da mehrere Lösungswege an: Auf welche Buttoninstanzen sollen denn die Scripte für Bilder 16-30 und 31-45? Du hast von klicken auf 2 und 3 geschrieben, die tauchen im Script aber nicht auf. Wie wäre es denn, alles auf einen einzigen Vorwärts- und einen einzigen Rückwärtsbutton zu legen? Geändert von agedoubleju (03-09-2004 um 03:14 Uhr) | |
|
| | #3 (permalink) |
| Neuer User Registriert seit: Feb 2003 Ort: Erde
Beiträge: 601
|
ja, aber wenn ich nun frisch rein gehe und mir sage... aha letzte Woche hab ich eine geile Seite gesehen das war doch unter der Zahl 100002,... dann klick ich mich ja halb krank, bis ich bei der Zahl bin. So kann ich zb. auf dem Ziffernfeld auf 30 klicken und schon bin ich irgendwo bei den Bildern von 67-99 Ich möchte sowas wie bei http://flashmxpro.com (unter Links) mit Flash realisieren... Nur halt mit thumbs, anstat mit Text Links.. Ich hoffe man versteht nun was genau ich meine... Nun habe ich das Ziffernfeld aber so, dass er mir so viele Zahlen, wie ich Einträge habe auflistet (Ist ja nur provisorisch). Ich möchte aber, dass er zb. bei 66 Einträgen nur die Ziffern 1 u. 2 Einbländet, sodass wenn ich auf 1 klick, die thumbs von 1 bis 33 und wenn ich auf 2 klick, die thumbs von 34 bis 66 eingeblendet werden. Ich habe nur keine Ahnung, wie ich das nun machen soll.. Da müsste ich doch irgendwie die Gesamteinträge durch 33 Teilen damit ich auf meine richtige Ziffernfeld Zahl komme.. Ntürlich ist es besser, dass sich das Ziffernfeld sich auch ohne Buttons automatisch anpasst.. Aber das ist dann ein anderes Problem. Geändert von dummy2 (03-09-2004 um 12:59 Uhr) |
| | |
| | #4 (permalink) | |
| Gast
Beiträge: n/a
| Zitat:
Dein Problem habe ich aber nicht wirklich voll verstanden, gib doch mal für fünf Buttons Beispiele. | |
|
| | #5 (permalink) |
| Neuer User Registriert seit: Feb 2003 Ort: Erde
Beiträge: 601
|
Ich habe hier noch etwas weiter gemacht. Wenn man auf die Ziffern draufklickt, dann kommt man zu dem entsprechendem 15ner Thumbs Feld. Es werden hier aber mehr "Ziffern Blöcke" als 15ner Thumb Felder dubliziert, was nicht sein darf.. Ich weis jetzt nicht wie ich das machen soll, da ich ja mit diesem "i" arbeite, und das gibt mir mindestenz einen Wert aus, wieviel auch Einträge in der xml sind. Naja, vielleicht könnt ihr mir weiter helfen.. as: PHP-Code: Die fla Geändert von dummy2 (03-09-2004 um 20:54 Uhr) |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Feb 2003 Ort: Erde
Beiträge: 601
|
Ich sitze immernoch an der selben Stelle. Ich schetze ich müsste irgendwie das tn[i] irgendwie definieren if (tn[i] != undefined) {...} Das bestimmt doch die Anzahl der Einträge.. Wenn ich nun diesen Wert durch 33 Teile und runde, dann bekom ich 33tel Schritte, dh. Es werden nur 33tel so viele Blöcke dubliziert. Ich hab jetzt das versucht tn[i]= tn/33 aber es werden plötzlich 99 Blöcke dubliziert, außerdem verändert es nicht nur die Ziffern Feld Funktion, sondern alle anderen Funktionen mit dazu.. Ich weiß, das muss ne wirklich dumme Idee sein.. Aber ich arbeite gerade wirklich an meinen Grenzen.. Und komme in letzter Zeit nur durch Versuche voran.. Könnt ihr mir da nicht etwas helfen. |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Feb 2003 Ort: Erde
Beiträge: 601
|
OK, ich habs hinbekommen... Nur leider spinnen nun die Buttons.. Wenn ich vor klick, bewegt sich das Ziffernfeld zwar richtig vor (vermute ich) aber die Ziffern gehen nur bis 66... Was ist denn da wieder falsch??? Hab die vermutete Problemstelle rot markiert. Code: fscommand("allowScale", false);
url = "test.xml";
EX = new XML();
EX.ignoreWhite = true;
EX.load(this.url);
EX.onLoad = function(ready) {
if (ready) {
tn = EX.firstChild.childNodes;
delete EX;
movmc();
movmv1();
movmv();
movbt(-15*-1, 305-35, 180)
}
};
function btnu(aa,ma){
this[numbers].onRelease = function(){
aktAnzeige = aa;
maxAnzeige = ma;
movmv();
}
}
function movmv1() {
j = 0;
for (i=aktNr; i<MaxNr and i<Math.round(anzahl/15); i++) {
numbers = "number"+j;
attachMovie("number", numbers, 2*j);
if (tn[i] != undefined) {
this[numbers]._y = 292;
this[numbers]._x = 5+this[numbers]._height*j*1;
this[numbers].numbertxt.text = i+1;
btnu(i*15,i*15+15)
this[numbers].useHandCursor = false;
} else {
this[numbers].removeMovieClip();
}
j++;
}
}
function movmv() {
j = 0;
for (i=aktAnzeige; i<maxAnzeige; i++) {
link = "links"+j;
attachMovie("links", link, 2*j+1);
if (tn[i] != undefined) {
link.duplicateMovieClip(link, i);
this[link]._x = 10+(j%5)*140;
this[link]._y = 20+Math.floor(j/5)*76;
trace(this[link]._y);
this[link].txtnr.text = i+1;
this[link].bild = tn[this[link].txtnr.text-1].firstChild.attributes.bild;
} else {
this[link].removeMovieClip();
}
j++;
}
}
function movmc() {
anzahl = tn.length;
max = 5;
maxAnzeige = 15;
maxNr = 33;
aktAnzeige = 0;
aktNr = 0;
}
function btz(){
this[bt3].onRelease = function() {
if (aktAnzeige>1) {
j = 0;
aktAnzeige -= 15;
maxAnzeige -= 15;
movmv();
}
};
this[bt4].onRelease = function() {
if (aktAnzeige<anzahl-15) {
j = 0;
aktAnzeige += 15;
maxAnzeige += 15;
movmv();
}
};
this[bt2].onRelease = function() {
if (aktNr<anzahl-33) {
j = 0;
aktNr += 33;
maxNr += 33;
movmv1();
}
};
this[bt1].onRelease = function() {
if (aktNr>1) {
j = 0;
aktNr -= 33;
maxNr -= 33;
movmv1();
}
};
}
function movbt(x, y, rot) {
l=0
for(q=0;q<4;q++){
bt = "button"+q
bt1 = "button"+0
bt2 = "button"+1
bt3 = "button"+2
bt4 = "button"+3
attachMovie("button", bt, 2*-q-1);
if (tn[q] != undefined) {
this[bt].useHandCursor = false;
this[bt1]._rotation = rot;
this[bt3]._rotation = rot;
bt.duplicateMovieClip(bt, q);
this[bt]._x = x+(l%2)*5;
this[bt]._y = y+Math.floor(l/2)*15;
trace(this[bt]._y);
btz()
}else{
this[bt].removeMovieClip();
}
l++
}
} Ich denk jetzt doch nicht, dass es an der Text Wiedergabe liegt, ist doch eher Was mit den Buttons. Vermutete Problemstelle jetzt grün EDIT: Ach ja hier nochmal die SWF damit ihr die Lage selber testen könnt Geändert von dummy2 (04-09-2004 um 18:02 Uhr) |
| | |
| | #8 (permalink) |
| Gast
Beiträge: n/a
|
Hast du das Script schon mal "gebuggert", also im Debugmodus oder Testmodus laufen lassen? Mich irritiert nämlich, dass im ganzen Script nur ein einziger trace-Befehl liegt, obwohl man das Problem mit ein paar Variablenüberprüfungen sicher in 30 Minuten in den Griff bekommen kann... Schieb mal die aktuelle fla rüber, wär doch gelacht... |
|
| | #9 (permalink) |
| Neuer User Registriert seit: Feb 2003 Ort: Erde
Beiträge: 601
|
Danke, dass du mir hilfst Hier die aktuellen Daten + fla: BSPSWF Wenn ich unter 496 Einträge habe, dann dubliziert er auch ganz normal nur so viel Ziffern Blöcke, wie ich brauche. Ab 496 Einträgen muss ich das Ziffernfeld um weitere 33 Blöcke verschieben, was auch noch funktioniert. Es werden 34-66 Blöcke angezeigt. Habe ich nun über 990 Einträge, dann muss ich wieder weiterklicken. Hier kommt es schon zu einem Problem. Er bländet zwar die restlichen Blöcke ein, (Siehe BSPSWF 67-78 wird richtig eingebländet) aber er bländet die Ziffernblöcke von zuvor nicht mehr aus ( Siehe BSPSWF 46-66 ist immernoch zu sehen) Klick ich nun weiter, verändert sich am Ziffernfeld nix mehr, aber er zählt irgendwie weiter, denn ich muss genau so viel zurück klicken, wie ich vor geklickt habe damit was passiert. ActionScript:
|
| | |
| | #10 (permalink) |
| Gast
Beiträge: n/a
|
Ich hab es mir gleich beim ersten Mal gedacht: ActionScript:
Wieder einmal ein Beispiel dafür, dass man nicht raten soll, sondern testen muss (Testmodus oder Debugger, dafür sind die da!). Geändert von agedoubleju (05-09-2004 um 14:55 Uhr) |
|
| | #11 (permalink) |
| Neuer User Registriert seit: Feb 2003 Ort: Erde
Beiträge: 601
|
Jo, hast recht, ohne and, gibts keine Probleme. Normal hät ich auch nicht gedacht, dass er das and überhaupt schluckt.. Aber wie schaf ich es nun, dieses Problem zu umgehen? Die Begrenzung, die ich durch maxNr2 bekom, brauch ich ja wegen den 15tel Schritten. Ich muss dann ab 8te wieder in die Kaserne, kann mich erst wieder am Freitag melden. Deshalb jetzt schonmal danke, falls dir etwas einfällt. Ich nehm mir den Ausdruck mit, vielleicht fällt mir während Stuben und Revier Reinigen noch was ein. |
| | |
| | #13 (permalink) |
| Neuer User Registriert seit: Feb 2003 Ort: Erde
Beiträge: 601
|
Bin leider net weiter gekommen, hatte zu viel ABC,..........Stacheldrahtzaun,...San... Ausbildungen gehabt, und leider keine frei Minute für Flash... Hoffentlich kom ich durch diese Rekrutenprüfung, dann hab ich endlich eine Pomfritte auf der Schulter Endlich keine AGA und mehr Zeit. Ich such jetzt immernoch nach einer Lösung nur den 15tel Teil der Blocks zu dublizieren, ohne, dass es zu Problemen kommt.. Falls dir oder jemand anders noch etwas dazu einfällt, würde mich das sehr freuen.. Bis dahin versuche ich weiterhin schleichend voran zu kommen..
|
| | |
| | #14 (permalink) |
| Neuer User Registriert seit: Feb 2003 Ort: Erde
Beiträge: 601
|
OK, hab jetzt das PHP-Code: PHP-Code: PHP-Code: PHP-Code: Auf alle Fälle, wechselt der Button nicht mehr wirre.. Das einzige Problem ist nun das Ausblenden der überschüssigen Ziffernblöcke.. Wenn man es nicht machen kann, dass sie garnicht erst dubliziert werden, ist es dann irgendwie möglich sie durch _visible=false auszubländen... .. Das Problem ist nur, wie blände ich zb Zahlen von zb maxNr2-33 aus..? |
| | |
| | #15 (permalink) |
| Neuer User Registriert seit: Feb 2003 Ort: Erde
Beiträge: 601
|
OK, ich glaub ich habe es nun doch noch geschafft.. ![]() Das ist meiner Meinung ne ****** Lösung, aber anders konnte ich es nicht.. Lieber wär mirs natürlich, wenn ich den Rest garnicht erst verstecken müsste, sondern, dass er garnicht eingebländet wird. Naja, falls ihrs doch anders machen könntet, bzw. noch vereinfachen könnt, wärs echt cool ![]() Danke an die, die mich unterstützt haben oder sich zumindest Gedanken über dieses Problem gemacht haben, oder noch machen werden. SWF Hier meine Lösung: PHP-Code: |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |