Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-03-2005, 11:42   #1 (permalink)
HollyMolly
 
Benutzerbild von thom.k
 
Registriert seit: Apr 2004
Beiträge: 291
btn-ani - kann mir jemand einen tipp geben?

ich habe ein button-mc in dem ist ein einfaches tweening, darüber habe ich eine ebene mit as, im ersten frame folgendes script:
PHP-Code:
stop();
this.onRollOver = function() {
    
delete onEnterFrame;
    
play();
};
MovieClip.prototype.zurück = function() {
    
this.onEnterFrame = function() {
        
_currentframe != ? (gotoAndStop(_currentframe 1)) : delete onEnterFrame;
    };
};
this.onRollOut = function() {
    
this.zurück();
}; 
im letzten frame habe ich ein stop();

in der hauptzeitleiste habe ich diesen mc 2 x auf einer ebene und jeder der beiden hat einen instanznamen: nr1 und nr2
in der zweiten ebene habe ich in bild 20 und in bild 25 je eine zeichnung drin
in der dritten ebene habe ich folgendes script:
PHP-Code:
stop();
nr1.onRelease = function() {
    
gotoAndStop(25);
};
nr2.onRelease = function() {
    
gotoAndStop(20);
}; 
warum läuft mein mc-tweening nicht richtig? - was mache ich falsch?
kann mir da bitte jemand helfen?
Angehängte Dateien
Dateityp: zip film_vor_und_rückwärts.zip (6,0 KB, 3x aufgerufen)
__________________
gruß
thom.k
_________________________
menü tutorial; flv-player; my page
besser a bissl was wissn, als gar nix
thom.k ist offline   Mit Zitat antworten
Alt 15-03-2005, 11:54   #2 (permalink)
kroate
 
Benutzerbild von xbass
 
Registriert seit: Jan 2003
Ort: Hannover
Beiträge: 360
PHP-Code:
stop();
this.onRollOver = function() {
    
delete this.onEnterFrame;
    
play();
};
MovieClip.prototype.zurück = function() {
    
this.onEnterFrame = function() {
        
this._currentframe != ? (this.gotoAndStop(this._currentframe 1)) : delete this.onEnterFrame;
    };
};
this.onRollOut = function() {
    
this.zurück();
}; 
__________________
www.fresh-solutions.de
Fresh Flash For All.
xbass ist offline   Mit Zitat antworten
Alt 15-03-2005, 11:58   #3 (permalink)
HollyMolly
 
Benutzerbild von thom.k
 
Registriert seit: Apr 2004
Beiträge: 291
Thumbs up

daaankeee!!
__________________
gruß
thom.k
_________________________
menü tutorial; flv-player; my page
besser a bissl was wissn, als gar nix
thom.k ist offline   Mit Zitat antworten
Alt 15-03-2005, 11:59   #4 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Kannst auch Deinen Script aus Den Mc's rausnehmen und nur das stop(); auf Frame 1 lassen und in der HZL in Frame 1 schreibste das so:
PHP-Code:
stop();
nr1.onRollOver = function(){ this.play(); };
nr1.onRelease = function() { gotoAndStop25 ); };
nr1.onRollOut = function() { this.zurück(); };

nr2.onRollOver = function(){ this.play(); };
nr2.onRelease = function() { gotoAndStop20 ); };
nr2.onRollOut = function() { this.zurück(); };

MovieClip.prototype.zurück = function()
{
    
this.onEnterFrame = function()
    {
        
this._currentframe != ? ( this.gotoAndStopthis._currentframe ) ) : delete this.onEnterFrame;
    };
}; 
Und das delete onEnterFrame an dieser Stelle kannste weglassen:
PHP-Code:
this.onRollOver = function() { 
    
delete this.onEnterFrame
    
play(); 
}; 
Weil Du das ja schon in Deinem prototype killst.
__________________
ERROR: Signature is too large

Geändert von rendner[i] (15-03-2005 um 12:01 Uhr)
rendner[i] ist offline   Mit Zitat antworten
Alt 15-03-2005, 12:10   #5 (permalink)
HollyMolly
 
Benutzerbild von thom.k
 
Registriert seit: Apr 2004
Beiträge: 291
ja aber je mehr ich von den btns ich auf der szene habe, umso mehr script habe ich dann, oder?
und somit auch größere datei??

keine ahnung! - wie wäre es den besser?

aber danke dir auch für die idee!!!
__________________
gruß
thom.k
_________________________
menü tutorial; flv-player; my page
besser a bissl was wissn, als gar nix

Geändert von thom.k (15-03-2005 um 12:20 Uhr)
thom.k ist offline   Mit Zitat antworten
Alt 15-03-2005, 12:30   #6 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Ach das kann man dann auch mit ner for-Schleife lösen.
Besser ist wenn man den ganzen Script an einer Stelle hat, da wenn Fehler auftretten man nicht die ganze Datei nach den Scripts durchsuchen muss.
Oder wenn man mal Monate später was ausbessern muss, dann hat man alles an einem Fleck.

Hier ein Beispiel wie Du Deinen Buttons (wenn Du zB 5 hast und diese so heissen, nr1, nr2, nr3, ...) die Funktionen mit ner for-Schleife zuweist:
PHP-Code:
stop();
// Array in das Du die Bildnummer speicherst an welcher Stelle der Button
// springen soll bei onRelease
var bildNum_arr = [ "20""25""30""35""40" ];

for ( var 
1<= 5i++ )
{
    
_root"nr" ].onRollOver = function(){ this.play(); };
    
_root"nr" ].onRelease = function() { gotoAndStopbildNum_arrthis._name.charAt(this._name.length 1)-] ) };    
    
_root"nr" ].onRollOut = function() { this.zurück(); };
}

MovieClip.prototype.zurück = function()
{
    
this.onEnterFrame = function()
    {
        
this._currentframe != ? ( this.gotoAndStopthis._currentframe ) ) : delete this.onEnterFrame;
    };
}; 
__________________
ERROR: Signature is too large

Geändert von rendner[i] (15-03-2005 um 12:35 Uhr)
rendner[i] ist offline   Mit Zitat antworten
Alt 15-03-2005, 12:36   #7 (permalink)
HollyMolly
 
Benutzerbild von thom.k
 
Registriert seit: Apr 2004
Beiträge: 291
das ist ja eine sehr elegante lösung!! )

das mit der for-schleife kapier ich nicht ganz, du kennst ja meine as kenntnisse )

aber gefällt mir - danke!!
__________________
gruß
thom.k
_________________________
menü tutorial; flv-player; my page
besser a bissl was wissn, als gar nix
thom.k ist offline   Mit Zitat antworten
Alt 15-03-2005, 13:01   #8 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Das ist ganz einfach, mit ihr gehst du ja von (i=1) 1 bis 5.
Da Deine Buttons ja nr1, nr2, nr3,... heissen, also alle gleich bis auf die Nummer am ende des Namens.
Setzt Du den Namen halt so zusammen:
PHP-Code:
 _root"nr" 
Dies ergibt dann bei jedem Durchlauf der for-Schleife (je nach i):
_rott.nr1, _root.nr2,...
Jetzt hängt man nur noch das Ereignis mit der entsprechenden Funktion an.
Somit erstellt die for-Schleife dann immer:
PHP-Code:
_root.nr1.onRollOver = function(){ this.play(); }; 
_root.nr2.onRollOver = function(){ this.play(); }; 
...
usw... 
Spart ein haufen Arbeit, und ist leichter zu pflegen, wenn eh alle Buttons das gleiche können sollen.
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 15-03-2005, 13:55   #9 (permalink)
HollyMolly
 
Benutzerbild von thom.k
 
Registriert seit: Apr 2004
Beiträge: 291
Thumbs up

das ist eine feine sache, danke für deine nette erklärung.
meinst du ich hätte eine chance mit meinen kenntnissen in paraguay zu arbeiten?
__________________
gruß
thom.k
_________________________
menü tutorial; flv-player; my page
besser a bissl was wissn, als gar nix
thom.k ist offline   Mit Zitat antworten
Alt 15-03-2005, 14:00   #10 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Wieso nicht .
Einen Versuch währs wert...würde sogar mitkommen , da ist es bestimmt auch schön warm.
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 15-03-2005, 14:02   #11 (permalink)
HollyMolly
 
Benutzerbild von thom.k
 
Registriert seit: Apr 2004
Beiträge: 291
kannst du mir vielleicht noch sagen wie ich in dem array das so machen kann, dass die bildnummern im nächsthöheren mc angesprochen werden?

ja warm auf jeden fall - zur zeit wandern doch so viele dahin aus - müsste man nur spanisch können
__________________
gruß
thom.k
_________________________
menü tutorial; flv-player; my page
besser a bissl was wissn, als gar nix

Geändert von thom.k (15-03-2005 um 14:07 Uhr)
thom.k ist offline   Mit Zitat antworten
Alt 15-03-2005, 14:15   #12 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Das brauchst Du nicht im Array ändern!
Da musst Du das hier ändern:
PHP-Code:
_root"nr" ].onRelease = function() { gotoAndStop( ... ) }; 
Und zwar das gotoAndStop, wenn Du einen anderen Film haben willst, musst Du den Pfad zu dem Film vor das gotoAndStop setzen.
So:
PHP-Code:
_root.Hauptfilm.gotoAndStop( ... ); 
Damit würdest Du jetzt den mc mit den Namen Hauptfilm auf der HZL ansprechen.
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 15-03-2005, 21:20   #13 (permalink)
HollyMolly
 
Benutzerbild von thom.k
 
Registriert seit: Apr 2004
Beiträge: 291
das funzt aber so nicht
ich habe in der hauptzeitleiste einen mc in dem schon alles drin ist: ein menü-mc und die ebene mit den frames wo die bilder sind

und jetzt sind die btns überhaupt nicht ansprechbar, geschweige den dass bei klick was passiert
Angehängte Dateien
Dateityp: zip film_vor_und_rückwärts.zip (8,1 KB, 2x aufgerufen)
__________________
gruß
thom.k
_________________________
menü tutorial; flv-player; my page
besser a bissl was wissn, als gar nix

Geändert von thom.k (15-03-2005 um 21:22 Uhr)
thom.k ist offline   Mit Zitat antworten
Alt 16-03-2005, 08:40   #14 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Wenn Du das so machen willst dann must Du den Script, so ähnlich wie Du íhn hattest, wieder in die "Buttons" zürück packen.

Also Datei öffnen,
- in der HZL den Script der Ebene as so ändern:
PHP-Code:
stop();
var 
bildNum_arr = ["20""25""30""35""40"];

MovieClip.prototype.zurück = function() { 
    
this.onEnterFrame = function() {     
        
this._currentframe != ? (this.gotoAndStop(this._currentframe 1)) : delete this.onEnterFrame
    }; 
}; 
Rest kannste rausnehmen.
Der Prototyp muss nicht in jeden Button drinn sein, reicht wenn Du den ins erste Frame der HZL legst und schon hat Flash sich den gemerkt.

Und in Deine Buttons packste "wieder" folgenden Script:
(erstes Frame in der HZL des "Button")
PHP-Code:
stop();
//____________möglichkeit1

this.onRollOver = function() { 
    
this.play(); 
}; 
this.onRollOut = function() { 
    
this.zurück(); 
};
this.onRelease = function()
{    
    
_root.gotoAndStop(_root.bildNum_arr[this._name.charAt(this._name.length-1)-1]);
}; 
__________________
ERROR: Signature is too large

Geändert von rendner[i] (16-03-2005 um 08:41 Uhr)
rendner[i] ist offline   Mit Zitat antworten
Alt 16-03-2005, 20:05   #15 (permalink)
HollyMolly
 
Benutzerbild von thom.k
 
Registriert seit: Apr 2004
Beiträge: 291
danke klappt alles!!
__________________
gruß
thom.k
_________________________
menü tutorial; flv-player; my page
besser a bissl was wissn, als gar nix
thom.k 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:36 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele