Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-04-2005, 17:32   #1 (permalink)
Neuer User
 
Benutzerbild von Zuckerwasser
 
Registriert seit: Apr 2005
Beiträge: 41
Color.setTransform in einer Schleife. Wie?

Hallo.

Ich habe folgendes in einem Keyframe stehen:

ActionScript:
  1. _root.Profil.onRollOver = function()
  2. {   
  3.     Farbe = new Color (_root.Profil);
  4.     Farbfade = new Object();
  5.     Farbfade = {ra:0,rb:153,ga:0,gb:153,ba:0,bb:153,aa:100,ab:0};
  6.     for(var i=0.5;i<=102;i = i + 0.5)
  7.     {      
  8.         this._parent.Farbfade.rb = this._parent.Farbfade.rb + (2*i);
  9.         this._parent.Farbfade.gb = this._parent.Farbfade.gb - i;
  10.         this._parent.Farbfade.bb = this._parent.Farbfade.bb - i;
  11.         this._parent.Farbe.setTransform(this._parent.Farbfade);
  12.     }
  13. }


Kann mir jemand sagen, warum das nicht funktioniert?

Ich möchte, dass sich der Farbwert des MC_Buttons langsam ändert, wenn man drüber fährt.

Kann mir jemand helfen?
Ich bin am verzweifeln.
Danke.
__________________
..:: Niemand lebt ohne Mängel, wir sind Menschen, keine Engel. ::..
Zuckerwasser ist offline   Mit Zitat antworten
Alt 17-04-2005, 17:52   #2 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Wenn Du das langsam willst biste mit ner for-Schleife falsch beraten.
Das musste mit einer onEnterFrame-Funktion machen, da ne for-Schleife immer durchrennt und man eigentlich nix sieht.
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 17-04-2005, 20:05   #3 (permalink)
Neuer User
 
Benutzerbild von Zuckerwasser
 
Registriert seit: Apr 2005
Beiträge: 41
Ich danke dir.
__________________
..:: Niemand lebt ohne Mängel, wir sind Menschen, keine Engel. ::..
Zuckerwasser ist offline   Mit Zitat antworten
Alt 19-04-2005, 00:46   #4 (permalink)
Neuer User
 
Benutzerbild von Zuckerwasser
 
Registriert seit: Apr 2005
Beiträge: 41
Hallo.

Habe nochmal eine Frage.

Habe auf der Bühne 8 MC_Buttons (Frage1 - Frage8) und folgendes Script dazu:

ActionScript:
  1. for (var i=1;i<9;i++)
  2. {
  3.     _root["Frage" + i].i = i;       
  4.     _root["Frage" + i].onRollOver = function()
  5.        {     
  6.         Farbe = 'Farbe_u' + this.i;
  7.         Farbfade = 'Farbfade_u' + this.i;
  8.         Farbe = new Color (_root["Frage" + i]);       
  9.         Farbfade = new Object();
  10.         Farbfade = {ra:0,rb:151,ga:0,gb:151,ba:0,bb:151,aa:100,ab:0};
  11.         this._parent.Farbe.setTransform(this._parent.Farbfade);
  12.         var k = 1;
  13.         this.onEnterFrame = function()
  14.         {
  15.             if (k<=13)
  16.             {
  17.                 this._parent.Farbfade.rb = this._parent.Farbfade.rb + 8;
  18.                 this._parent.Farbfade.gb = this._parent.Farbfade.gb - 4;
  19.                 this._parent.Farbfade.bb = this._parent.Farbfade.bb - 4;
  20.                 this._parent.Farbe.setTransform(this._parent.Farbfade
  21. );
  22.             }
  23.             k++;
  24.         }
  25.     }
  26.     _root["Frage" + i].onRollOut = function()
  27.     {
  28.         Farbe2 = "Farbe_d" + this.i;
  29.         Farbfade2 = "Farbfade_d" + this.i;
  30.         Farbe2 = new Color (_root["Frage" + i]);
  31.         Farbfade2 = new Object();
  32.         Farbfade2 = {ra:0,rb:255,ga:0,gb:99,ba:0,bb:99,aa:100,ab:0};
  33.         this._parent.Farbe2.setTransform(this._parent.Farbfade2);
  34.         var n = 1;
  35.         this.onEnterFrame = function()
  36.         {
  37.             if (n<=13)
  38.             {
  39.                 this._parent.Farbfade2.rb = this._parent.Farbfade2.rb - 8;
  40.                 this._parent.Farbfade2.gb = this._parent.Farbfade2.gb + 4;
  41.                 this._parent.Farbfade2.bb = this._parent.Farbfade2.bb + 4;
  42.                 this._parent.Farbe2.setTransform(this._parent.Farbfade2);
  43.             }
  44.             n++;
  45.         }
  46.     }
  47. }

Aber es will nicht funktionieren.
Muss ich denn für jeden MC-Button eine eigene RollOver und RollOut Funktion schreiben?


Vielen Dank für eure Hilfe!
__________________
..:: Niemand lebt ohne Mängel, wir sind Menschen, keine Engel. ::..
Zuckerwasser ist offline   Mit Zitat antworten
Alt 19-04-2005, 08:51   #5 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Habs im anderen Forum beantwortet (...äh,...Denke ich...).
Und hier die Erklärung:
Dein ColorObject kennt bei einem onRollOver kein _root["Frage" + i], weil er das i nicht kennt.
__________________
ERROR: Signature is too large

Geändert von rendner[i] (19-04-2005 um 08:53 Uhr)
rendner[i] ist offline   Mit Zitat antworten
Alt 19-04-2005, 14:05   #6 (permalink)
Neuer User
 
Benutzerbild von Zuckerwasser
 
Registriert seit: Apr 2005
Beiträge: 41
Ja, du hast richtig gedacht. *g*
Danke dafür.

Nun habe ich noch ne andere Frage.

Ich habe die on Release Funktion erweitert. Es funktioniert auch eigentlich alles, außer dass die Textfelder (Über und Textfeld) nicht mit Text ausgefüllt werden. Das Array "Üs[]" sind Überschriften, das ich vorher mit text gefüllt habe.

Kann mir da vielleicht jemand weiterhelfen?

Mein AS:

ActionScript:
  1. for (var i=1;i<9;i++)
  2. {
  3.     _root["Frage" + i].i = i;
  4.     _root["Frage" + i].onRelease = function()
  5.     {     
  6.         this.onEnterFrame = function()
  7.         {
  8.             _root.Fr9._alpha -=20;
  9.             if (_root.Fr9._alpha <=0)
  10.             {
  11.                 neu = this.i;
  12.                 var txtVar = "Frage" + (neu)
  13.                 if (alt != neu)
  14.                 {
  15.                     if (alt != undefined)
  16.                     {
  17.                         alt = this.i;
  18.                         _root.RahmenStart._visible = false;         
  19.                         _root.Rahmen.MCÜberschrift.Über.text = "" + Üs[Number(neu+1)];
  20.                         _root.Rahmen.MCTextfeld.Textfeld.variable = txtVar;
  21.                         _root.Rahmen.MCTextfeld.loadVariables(txtVar + ".txt");
  22.                         _root.Rahmen.gotoAndPlay(1);
  23.                         delete this.onEnterFrame;
  24.                     }
  25.                     else
  26.                     {
  27.                         alt = this.i;
  28.                         _root.RahmenStart.MCÜberschrift.Über.text = "" + Üs[Number(neu+1)];
  29.                         _root.RahmenStart.MCTextfeld.Textfeld.variable = txtVar;
  30.                         _root.RahmenStart.MCTextfeld.loadVariables(txtVar + ".txt");
  31.                         _root.RahmenStart.gotoAndPlay(1);
  32.                         delete this.onEnterFrame;
  33.                     }
  34.                 }            
  35.             }
  36.         }
  37.     }
  38. }

Danke.

Tut mir leid für die Fragen, aber ich bin am verzweifeln.
__________________
..:: Niemand lebt ohne Mängel, wir sind Menschen, keine Engel. ::..

Geändert von Zuckerwasser (19-04-2005 um 14:08 Uhr) Grund: Erklärung eingefügt
Zuckerwasser ist offline   Mit Zitat antworten
Alt 19-04-2005, 14:08   #7 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
kannste da nicht ne kleine fla posten, muss es sonst bauen.
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 19-04-2005, 17:05   #8 (permalink)
Neuer User
 
Benutzerbild von Zuckerwasser
 
Registriert seit: Apr 2005
Beiträge: 41
Ja, mache ich.

Vielen Dank schonmal.
Angehängte Dateien
Dateityp: zip Test.zip (35,4 KB, 4x aufgerufen)
__________________
..:: Niemand lebt ohne Mängel, wir sind Menschen, keine Engel. ::..
Zuckerwasser ist offline   Mit Zitat antworten
Alt 19-04-2005, 18:32   #9 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Das liegt irgendwie am Tween!
Wenn Du ihm anstatt gotoAndPlay(1); ein gotoAndStop( ... ); gibst funtzt es!
Frag mich aber nicht wie man das jetzt anderst lösen kann, mit den Textfeldern stehe ich echt auf Kriegsfuss.

EDIT:
Übergib Deinem TextFeld die Variable _root.TEXT.
Und in der HZL erstellst Du die Variable TEXT und weist dieser die Überschriften zu, dann funtzt es!!!! *freu*
PHP-Code:
if (alt != undefined) {
    
alt this.i;
    
_root.RahmenStart._visible false;
    
_root.TEXT Üs[Number(neu+1)];
    
_root.Rahmen.MCTextfeld.Textfeld.variable txtVar;
    
_root.Rahmen.MCTextfeld.loadVariables(txtVar+".txt");
    
_root.Rahmen.gotoAndPlay(1);
    
delete this.onEnterFrame;

__________________
ERROR: Signature is too large

Geändert von rendner[i] (20-04-2005 um 07:52 Uhr)
rendner[i] ist offline   Mit Zitat antworten
Alt 20-04-2005, 05:44   #10 (permalink)
Neuer User
 
Benutzerbild von Zuckerwasser
 
Registriert seit: Apr 2005
Beiträge: 41
Ich danke dir!!
Die Überschriften funzen schonmal.

Nur, wenn ich jetzt ein gotoStop(..) mache, sehe ich kein Tween mehr.

ActionScript:
  1. if (alt != "undefined")
  2.                     {
  3.                         alt = this.i;
  4.                         _root.RahmenStart._visible = false;         
  5.                         _root.TEXT = Üs[Number(neu-1)];
  6.                         _root.Rahmen.MCTextfeld.Textfeld.variable = txtVar;
  7.                         _root.Rahmen.MCTextfeld.loadVariables(txtVar + ".txt");
  8.                         this.onEnterFrame = function ()
  9.                         {
  10.                             _root.Rahmen.gotoAndStop(_currentframe + 1);
  11.                             if (_root.Rahmen._currentframe == _root.Rahmen._totalframes)
  12.                             {
  13.                                 delete this.onEnterFrame;
  14.  
  15. ...

Bei dir funzt das?
Hmm..
Mal weiter probieren, oder hab ich wieder was falsch gemacht?
__________________
..:: Niemand lebt ohne Mängel, wir sind Menschen, keine Engel. ::..
Zuckerwasser ist offline   Mit Zitat antworten
Alt 20-04-2005, 08:00   #11 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Sorry, mit dem undefined haste Recht, stand gestern etwas aufn Schlauch.
So wie ich es gepostet habe hat es funktioniert.
In den Frame wo der ganze AS steht (dort wo auch das Array mit den Überschriften ist) fügst Du am besten oben ein: var TEXT = "";
Und dann gehst Du in den MC wo Dein Textfeld ist und trägst bei Variable _root.TEXT ein.
Das klappt, dann auch mit Tween.

Hänge es mal als MX-Version...da ist das schon gemacht
Angehängte Dateien
Dateityp: rar Test.rar (32,8 KB, 5x aufgerufen)
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 20-04-2005, 09:53   #12 (permalink)
Neuer User
 
Benutzerbild von Zuckerwasser
 
Registriert seit: Apr 2005
Beiträge: 41
Tut mir leid. Bei mir funzt das nicht.

Ich hänge mal die gesamte fla an, nicht nur ein Teil.
Könntest du nochmal bitte drüber schauen?

Also die Überschriften funktionieren auch einwandfrei, aber die "Antworten", also das Textfeld wird nicht gefüllt.

Ich habe auch die Antworten-Texte mal mit ins Archiv gepackt...

Vielen Dank.



Meine Fingernägel sehen schon schlimm aus!
Angehängte Dateien
Dateityp: zip Fragen.zip (46,5 KB, 2x aufgerufen)
__________________
..:: Niemand lebt ohne Mängel, wir sind Menschen, keine Engel. ::..
Zuckerwasser ist offline   Mit Zitat antworten
Alt 20-04-2005, 12:47   #13 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Bei Deinem onEnterFrame, wo Du immer ein Bild weiter gehst, bleibt Dir nix anderes übrig, als in jedem Frame den Text neu ins Textfeld zu legen, der merkt sich den irgendwie nicht.
Die Texte werden jetzt am Anfang der for-Schleife geladen, somit sind die auch "sofort" verfügbar, man muss sie ja nicht bei jeden Knopfdruck neu laden.
Hier der Script:
PHP-Code:
Üs = new Array ()
Üs[0] = "- wie steht ein architekt zum bauherrn?";
Üs[1] = "- genügt zum bauen nicht der bauunternehmer allein?";
Üs[2] = "- wie arbeitet man mit dem architekten zusammen?";
for (var 
i=1;i<4;i++)
{
    var 
alt =0;
    
_root.loadVariables( [ "Frage" ] + ".txt" );    
    
_root["Frage" i].i
    
_root["Frage" i].onRelease = function() 
    {     
        
this.onEnterFrame = function() 
        {
            
//_root.Fr9._alpha -=20;
            //if (_root.Fr9._alpha <=0)
            //{
                
var neu this.i;
                var 
txtVar "Frage" + (neu);    
                if (
alt != neu)
                {
                    if (
alt != 0)
                    {
                        
_root.Ütxt ""
                        
alt this.i;
                        
_root.RahmenStart._visible false;                                    
                        
_root.Ütxt Üs[Number(neu-1)];    
                        
this.onEnterFrame = function ()
                        {
                            
_root.Rahmen.gotoAndStop(_currentframe 1);
                            
_root.Rahmen.MCTextfeld.Textfeld.text _roottxtVar ];
                            if (
_root.Rahmen._currentframe == _root.Rahmen._totalframes)
                            {
                                
delete this.onEnterFrame;
                            }
                        }
                    }
                    else 
                    {    
                        
alt this.i;
                        
_root.Ütxt Üs[Number(neu-1)];
                        
this.onEnterFrame = function ()
                        {
                            
_root.RahmenStart.gotoAndStop(_currentframe 1);
                            
_root.RahmenStart.MCTextfeld.Textfeld.text _roottxtVar ];
                            if (
_root.RahmenStart._currentframe == _root.RahmenStart._totalframes)
                            {
                                
delete this.onEnterFrame;
                            }
                        }                        
                    }
                }                
            
//}
        
}
    }

__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 20-04-2005, 22:56   #14 (permalink)
Neuer User
 
Benutzerbild von Zuckerwasser
 
Registriert seit: Apr 2005
Beiträge: 41
Hi.
Leider hat das immer noch nicht funktioniert (bei mir jedenfalls nicht ).
Aber ich habe es jetzt anders hinbekommen.
Ich habe eine switch case Anweisung im MC für das Textfeld erstellt, welche dann die _root.txtVar durchkämmt und entsprechend die Frage[i].txt lädt.

Ich danke dir trotzdem wie verrückt, ohne deine Unterstützung hätte ich schon längst aufgegeben. ;-)
Und auf die _root-Variable wär ich auch nicht gekommen...
Bin noch nicht so geübt.

Danke nochmals.
__________________
..:: Niemand lebt ohne Mängel, wir sind Menschen, keine Engel. ::..
Zuckerwasser ist offline   Mit Zitat antworten
Alt 21-04-2005, 09:22   #15 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Was funtzt den bei Dir nicht?
Hatte mir Deine Datei gezogen und nur den geposteten AS geändert, und habe dann immer den passenden Text im Textfeld gesehen...
__________________
ERROR: Signature is too large
rendner[i] 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 00:58 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele