Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-09-2006, 00:22   #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();
D@rk ist offline   Mit Zitat antworten
Alt 24-09-2006, 00:55   #2 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Servus
Probiers mal so!
PHP-Code:
var MC:MovieClip this.createEmptyMovieClip ("MC"0);
for (var 
nCount:Number 1nCount <= 9nCount++)
{
    var 
btn:MovieClip MC.createEmptyMovieClip ("btn_" nCountnCount);
    
btn.nCount nCount;
    
with (btn)
    {
        var 
nPos:Number;
        
nPos 0;
        if (
nCount 1)
        {
            for (var 
n:Number 0nCount 1n++)
            {
                
nPos nPos 20;
            }
        }
        var 
txtField:TextField btn.createTextField ("txtField_" nCountnCount11nPos 210020);
        
txtField.text "btn" nCount;
        
txtField.selectable false;
        
beginFill (0x00FF0070);
        
moveTo (0nPos);
        
lineTo (104nPos);
        
lineTo (104nPos 15);
        
lineTo (8nPos 15);
        
lineTo (8nPos);
        
endFill ();
    }
    
btn.onRelease = function ()
    {
        
this["txtField_" this.nCount].text "BUTTON_" + (this.nCount);
    };
}
stop (); 
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 24-09-2006, 01:03   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2006
Beiträge: 4
Super!
Klappt. Danke!
D@rk ist offline   Mit Zitat antworten
Alt 24-09-2006, 16:23   #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();
Bitte helfen.
D@rk ist offline   Mit Zitat antworten
Alt 25-09-2006, 00:07   #5 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
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"
RustyCake ist offline   Mit Zitat antworten
Alt 25-09-2006, 10:58   #6 (permalink)
will code HTML for food
 
Benutzerbild von querkopf
 
Registriert seit: Mar 2003
Beiträge: 1.232
Mit Deinem RollOver
Code:
btn.onRollOver = function()
	{
		nBtn = this.nCount;
sorgst Du dafür, daß nur der Button über den Du grade drüber gerollt hast noch behandelt wird.

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.
querkopf ist offline   Mit Zitat antworten
Alt 25-09-2006, 21:49   #7 (permalink)
Neuer User
 
Registriert seit: Jan 2006
Beiträge: 4
Ok.
Vielen Dank für deine Hilfe.
Habe es mittlerweile schon gelöst.
D@rk ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 23:58 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele