Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-08-2006, 21:27   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2006
Beiträge: 36
Schaltflächen Problem (AS)

Guten Abend,

ich habe eine animierte Schaltfläche (17Bilder, die mit folgendem Script bei MouseOver abgespielt und bei MouseOut wieder rückwärts abgespielt wird:

PHP-Code:
this.btn1.onRollOver = function() {
    
this.onEnterFrame = function() {
        
// : gehe immer ein schritt vor in der Zeitleiste
        
this.nextFrame();
        
// : wenn ende der Zeitlieste erreicht ist halte an
        
if (this._currentframe == 17) {
            
delete this.onEnterFrame;
        }
    }
}
this.btn1.onRollOut = function() {
    
this.onEnterFrame = function() {
        
// : gehe immer ein schritt zurueck in der Zeitleiste
        
this.prevFrame();
        
// : wenn erste Frame ereicht ist halte die Animation an
        
if (this._currentframe == 1) {
            
delete this.onEnterFrame;
        }
    }
}
this.btn1.onRelease = function() {
    
_parent.gotoAndPlay(playfrom);
    
_parent.datei "Enterprise.swf";

Nun möchte ich aber, dass bei Klick auf die Schaltfläche der Film bis zum Ende (Bild 17) gespielt wird und stehen bleibt (auch wenn ich die Maus wieder herausbewege). Erst wenn ich ausserhalb oder auf eine andere Schaltfläche klicke, soll der Film wieder Rückwärts abgespielt werden und zur Ausgangsposition zurückkehren.

Kann jemand meinen Code ergänzen? Was muss ich tun?

Vielen Dank
Cypher75

Geändert von agedoubleju (25-08-2006 um 22:55 Uhr)
Cypher75 ist offline   Mit Zitat antworten
Alt 25-08-2006, 22:58   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
Sobald ich <3 Elemente habe gehts nicht, werden immer nur zei angezeigt...
Dann müsstest du im onRelease-Event deinen onRollOut-Event löschen und bei Bedarf wieder neusetzen.

BTW: hab deine Scriptanweisungen zwecks besserer Lesbarkeit in PHP-Tags eingebunden...
  Mit Zitat antworten
Alt 29-08-2006, 13:46   #3 (permalink)
Neuer User
 
Registriert seit: Aug 2006
Beiträge: 36
Es klappt... ABER

Hallo aitschdabbelju ;-)

ich habe nun folgendes probiert:

PHP-Code:
var playfrom 15;
this[btn1].aktiv false;

this.btn1.onRollOver = function() {
    
this.onEnterFrame = function() {
        
// : gehe immer ein schritt vor in der Zeitleiste
        
this.nextFrame();
        
// : wenn ende der Zeitlieste erreicht ist halte an
        
if (this._currentframe == 17) {
            
delete this.onEnterFrame;
        }
    }
}
this.btn1.onRollOut = function() {
    if(
this[btn1]==false) {
    
this.onEnterFrame = function() {
        
// : gehe immer ein schritt zurueck in der Zeitleiste
        
this.prevFrame();
        
// : wenn erste Frame ereicht ist halte die Animation an
        
if (this._currentframe == 1) {
            
delete this.onEnterFrame;
        }
    }
}
this.btn1.onRelease = function() {
    
_parent.gotoAndPlay(playfrom);
    
_parent.datei "Enterprise.swf";
    
this[btn1].aktiv true;

Soweit funktioniert alles, wie es soll: Bei MouseOver wird der clip abgespielt, bei MouseOut wird er rückwärts abgespielt und bei klick spielt er bis zur endposition und bleibt stehen.

ABER wie bewerkstellige ich es nun, dass er bei Klick auf einen anderen Button (mit dem gleichen Script - btn2, btn3, etc.) wieder Rückwärts zu seiner Ausgangsposition gespielt wird???

Ich habe schon versucht beim btn2 folgendes einzubauen:

PHP-Code:
this.btn2.onRelease = function() {
    
_parent.gotoAndPlay(playfrom);
    
_parent.datei "Andere.swf";
    
this[btn2].aktiv true;
    
this[btn1].aktiv false;

Da hab ich aber falsch gedacht... :-)
btn1 bleibt aktiviert
Cypher75 ist offline   Mit Zitat antworten
Alt 29-08-2006, 14:47   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hallo!

Benutz doch auch mal die Suche. Sowas gab's hier schon oft genug. Beispiel:
PHP-Code:
var files = ["hallo""blafasel""suelz"];
for (var 
1i<=3i++) {
    
this["btn"+i].stop();
    
this["btn"+i].id i-1;
    
this["btn"+i].onRollOver = function() {
        
this.onEnterFrame = function() {
            
// : gehe immer ein schritt vor in der Zeitleiste
            
this.nextFrame();
            
// : wenn ende der Zeitlieste erreicht ist halte an
            
if (this._currentframe == 17) {
                
delete this.onEnterFrame;
            }
        };
    };
    
this["btn"+i].onRollOut = function() {
        if (
_root.aktiv != this) {
            
this.onEnterFrame = function() {
                
// : gehe immer ein schritt zurueck in der Zeitleiste
                
this.prevFrame();
                
// : wenn erste Frame ereicht ist halte die Animation an
                
if (this._currentframe == 1) {
                    
delete this.onEnterFrame;
                }
            };
        }
    };
    
this["btn"+i].onRelease = function() {
        if (
_root.aktiv != this) {
            
this._parent.datei files[this.id]
            
trace("Datei ist: "+this._parent.datei)
            var 
tmp _root.aktiv;
            
_root.aktiv this;
            
tmp.onRollOut();
        }
    };

__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 29-08-2006, 18:02   #5 (permalink)
Neuer User
 
Registriert seit: Aug 2006
Beiträge: 36
SUUUUPER !!! Es funzt.

einzig

Zitat:
this._parent.datei = files[this.id]
musste ich ändern in

Zitat:
_parent.datei = files[this.id]
Herzlichen Dank!
Gruß Cypher
Cypher75 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 04:08 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele