Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-10-2006, 23:05   #1 (permalink)
_gir
 
Benutzerbild von supasuka
 
Registriert seit: Jul 2006
Ort: Karlsruhe
Beiträge: 957
Movieclip Slider

Hallo,
ich arbeite gerade an einigen Prototypen unter anderem auch an einem Slider für Movieclips.

Der sieht folgendermassen aus:

PHP-Code:
MovieClip.prototype.slideTo = function(newx:Numbervelocity:Numbercallback:Function, seconds:Number) {
    var 
speed:Number velocity/10;
    var 
delay:Number seconds*1000;
    
this.onEnterFrame = function() {
        
trace(newx && this._x);
        if (
newx == this._x) {
            
this._x Math.round(newx);
            
setTimeout(callbackdelay);
            
delete this.onEnterFrame;
        } else {
            
this._x -= Math.round((this._x-newx))*speed;
            
updateAfterEvent();
        }
    };
};
// Aufruf
mc.slideTo(600,1
Das ganze funktioniert auch, heisst der Clip slidet dorthin wo ich ihn haben will .
Allerdings wird der onEnterFrame Event nicht gelöscht, da er das Argument newx == this._x immer als false ausgibt.

Wenn ich allerdings über
PHP-Code:
trace(newx&&this._x
die beiden Werte abfrage sind sie am Ende der Animation sehr wohl gleich .

Weiss nicht wie ich da ansetzen soll. Wäre toll wenn mir jemand damit helfen könnte.
__________________
Gruß, Simon

swblog* | Invader Zim
supasuka ist offline   Mit Zitat antworten
Alt 04-10-2006, 23:42   #2 (permalink)
_gir
 
Benutzerbild von supasuka
 
Registriert seit: Jul 2006
Ort: Karlsruhe
Beiträge: 957
Habs anders gelöst. Jetzt wird das Event gelöscht.
Hier ist noch mal der Prototype, falls ihn jemand haben möchte.

PHP-Code:
MovieClip.prototype.slide = function(newx:Numbervelocity:Numbercallback:Function, seconds:Number) {
    var 
speed:Number velocity/10;
    var 
delay:Number seconds*1000;
    
this.onEnterFrame = function() {
        if (
newx>0) {
            if (
newx-this._x<.5) {
                
this._x Math.round(newx);
                
setTimeout(callbackdelay);
                
delete this.onEnterFrame;
            } else {
                
this._x -= Math.round(this._x-newx)*speed;
                
updateAfterEvent();
            }
        } else {
            if (
newx-this._x>-.5) {
                
this._x Math.round(newx);
                
setTimeout(callbackdelay);
                
delete this.onEnterFrame;
            } else {
                
this._x -= Math.round(this._x-newx)*speed;
                
updateAfterEvent();
            }
        }
    };
}; 
__________________
Gruß, Simon

swblog* | Invader Zim
supasuka 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 01:34 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele