| |||||||
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: Jan 2006
Beiträge: 4
| onRelease mit For-Schleife
Hallo an alle.. habe in kleines Problem!! Und zwar will ich Buttons dynamisch laden. Das mache ich mit einer For - Schleife. In dieser definiere ich pro Button die onRelease Funktion. Aber irgendwie funktioniert das nicht. Wenn ich auf einen Button drücke sollte er den Wert (Text) vom selben Button ändern. (Wenn ich jetzt mit dem unten aufgeführten Code einen Knopf drücke ändert dert Text vom letzten Button.) Ich weiss was das Problem ist. Aber ich habe keine Ahnung wie ich das lösen kann. Das ist mein erstes ActionScript. Weiss jemand wo der Fehler im Code ist? Code: // Movieclip
var MC:MovieClip = this.createEmptyMovieClip("MC", 0);
for(var nCount:Number = 1; nCount <= 9; nCount++)
{
var btn:MovieClip = MC.createEmptyMovieClip("btn_"+nCount, nCount);
with(btn)
{
var nPos:Number;
nPos = 0;
if(nCount > 1)
{
for(var n:Number = 0; n < nCount-1; n++)
{
nPos = nPos + 20;
}
}
var txtField:TextField =
this.createTextField("txtField_"+nCount, nCount, 11, nPos-2, 100, 20);
txtField.text = "btn"+nCount;
txtField.selectable = false;
beginFill(0x00FF00, 70);
moveTo(0, nPos);
lineTo(104, nPos);
lineTo(104, nPos+15);
lineTo(8, nPos+15);
lineTo(8, nPos);
endFill();
}
btn.onRelease = function()
{
txtField.text = "BUTTON_"+(nCount);
}
}
stop(); |
| | |
| | #2 (permalink) |
| brand new user Registriert seit: May 2002 Ort: Laimbach 6 1/2
Beiträge: 16.884
|
Servus Probiers mal so! PHP-Code:
__________________ Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake! "Wer tanzen will, muß erst gehen lernen" |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Jan 2006
Beiträge: 4
|
Hi... Der Code von dir läuft super. Aber jetzt habe ich ein anderes Problem. Ich habe so Rollover und RollOut Effekte gemacht. Aber irgendwie funktioniert dr RollOut "nicht" immer. Z.B. wenn ich von Button 1 auf Button 2 gehe (also mit Maus direkt von Button 1 auf Button 2 runter). Funktioniert der Rollout effekt bei Button 1 nicht. Wenn ich aber von Button 1 mit der Maus links gehe dann runter und anschliessend auf Button 2 funktioniert der Rollout Effekt bei Button 1. Kommt jemand nach was ich meine?? da wäre noch dr Code Code: var MC:MovieClip = this.createEmptyMovieClip ("MC", 0);
var rect:MovieClip = this.createEmptyMovieClip("rect", 1);
for (var nCount:Number = 1; nCount <= 7; nCount++)
{
var btn:MovieClip = MC.createEmptyMovieClip ("btn_" + nCount, nCount);
btn.nCount = nCount;
btn.useHandCursor = false;
var nPos:Number;
with (btn)
{
nPos = 0;
if (nCount > 1)
{
for (var n:Number = 0; n < nCount - 1; n++)
{
nPos = nPos + 20;
}
}
var txtField:TextField = btn.createTextField ("txtField_" + nCount, nCount, 11, nPos - 2, 100, 20);
txtField.text = "Home" + nCount;
txtField.selectable = false;
txtFormat = new TextFormat();
txtFormat.font = "arial";
txtFormat.color = "0xFFFFFF";
txtField.setTextFormat(txtFormat);
beginFill (0xFF0000, 100);
btn._alpha = 0;
moveTo (0, nPos);
lineTo (104, nPos);
lineTo (104, nPos + 15);
lineTo (8, nPos + 15);
lineTo (8, nPos);
endFill ();
}
with(rect)
{
beginFill (0xFF0000, 100);
moveTo (0, nPos);
lineTo (4, nPos);
lineTo (4, nPos + 15);
lineTo (0, nPos + 15);
lineTo (0, nPos);
endFill ();
}
btn.onRelease = function()
{
this["txtField_" + this.nCount].text = "Button_" + (this.nCount);
}
btn.onRollOver = function()
{
nBtn = this.nCount;
dir = 1;
}
btn.onRollOut = function()
{
nBtn = this.nCount;
dir = -1;
}
btn.onEnterFrame = function()
{
var speed:Number;
speed = 4;
temp = _root.MC["btn_"+nBtn]._alpha + speed * dir;
_root.MC["btn_"+nBtn]._alpha = Math.min(100, Math.max(temp,0));
}
}
stop(); |
| | |
| | #5 (permalink) |
| brand new user Registriert seit: May 2002 Ort: Laimbach 6 1/2
Beiträge: 16.884
|
EVTL. liegt des an den onClipEvents(enterFrame) doe sollte man nicht dauernd laufen lassen, also wenn der fade oder was auch immer für ein effekt verwendet wird fertig ist. mit delete this.onEnterFrame; des event kicken!!
__________________ Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake! "Wer tanzen will, muß erst gehen lernen" |
| | |
| | #6 (permalink) |
| will code HTML for food Registriert seit: Mar 2003
Beiträge: 1.232
|
Mit Deinem RollOver Code: btn.onRollOver = function()
{
nBtn = this.nCount; zusätzlich startest Du für jeden Button auf der Bühne eine OnEnterFrame, die Du auch nicht abbrichst. Das zieht die Performance total in den Keller! Bis dann, -querkopf-
__________________ Alles ist wie immer. Nur schlimmer. |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |