Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-10-2006, 10:58   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2002
Ort: Saarbrücken
Beiträge: 280
Prototype PositionClip

Guten Morgen liebe Flasher-Gemeinde,

ich bastele gerade einen Prototypen, der MovieCLips auf der Bühne positionieren soll.

Folgenden Code habe ich schon:
PHP-Code:
MovieClip.prototype.positionMC = function(xPosyPos){
    
this.xPos xPos.toLowerCase();
    
this.yPos yPos.toLowerCase();
    switch(
this.xPos){
        case 
'left' :
            
this._x 0;
            
trace("x: Links");
            break;
        case 
'middle' :
            
this._x Stage.width/2-(this._width/2);
            
trace("x: Mitte");
            break;
        case 
'right' :
            
this._x Stage.width-this._width;
            
trace("x: Rechts");
            break;
        default :
                
trace("Keine Angabe zu X");
    }

Jetzt würde ich gerne die Mcs nicht nur über left, middle und right positionieren, sondernauch noch über Zahlenwerte (z.B. 23) oder Prozentwerte (z.B. 20%).
Wie kann ich denn in der switch/case Anweisung überprüfen:
- Wenn this.xPos == Zahl dann mach irgendwas1
- wenn this.xPos == Prozentzahl dann mach irgendwas2

Gibts da ne schöne Lösung?

Viele Grüße und schonmal vielen lieben Dank im Vorraus.
Hans meisa ist offline   Mit Zitat antworten
Alt 13-10-2006, 11:05   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
PHP-Code:
MovieClip.prototype.positionMC = function(xPosyPospro) {
    if (
pro) {
        
trace("Es geht mit Prozentwerten weiter");
    } else {
        
trace("Es geht mit Zahlenwerten weiter");
    }
};
dein_mc.positionMC(10,20,false)// false könnte man auch weglassen. 
//Im Prinzip muss da nur irgendwas stehen, damit's mit Prozent weitergeht.
//
dein_mc.positionMC(10,20,"Suppenhuhn")// z.B. 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 13-10-2006, 11:13   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2002
Ort: Saarbrücken
Beiträge: 280
Wow

WOW, das war ja verdammt schnell ;-)

Vielen Dank erst mal, aber es wird auch vorkommen, dass die Wert-Typen gemixt werden, sprich xPos = Zahl, yPos = Prozentzahl.

Deshlab hat mir eher etwas vorgeschwebt wie:

PHP-Code:
 if (this.xPos == Number) { 
        
trace("Es geht mit einer Zahl weiter"); 
    } else { 
        
trace("Es geht mit was anderem weiter"); 
    } 
oder einer Analyse der Variable, ob in der Var ein '%' Zeichen vorkommt oder so.

Geht sowas?

Geändert von Hans meisa (13-10-2006 um 11:17 Uhr)
Hans meisa ist offline   Mit Zitat antworten
Alt 13-10-2006, 11:30   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Dann halt so hier:
PHP-Code:
MovieClip.prototype.positionMC = function(xPosyPos) {
    if (
typeof (xPos) == "string") {
        
trace("Es geht mit Prozentwerten bei xPos weiter");
        
xPos parseFloat(xPos);
    } else {
        
trace("Es geht mit Zahlwerten bei xPos weiter");
    }
    if (
typeof (yPos) == "string") {
        
trace("Es geht mit Prozentwerten bei yPos weiter");
        
yPos parseFloat(yPos);
    } else {
        
trace("Es geht mit Zahlwerten bei yPos weiter");
    }
};
dein_mc.positionMC(10"20%"); 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 13-10-2006, 12:36   #5 (permalink)
Neuer User
 
Registriert seit: Sep 2002
Ort: Saarbrücken
Beiträge: 280
MIst

Mist,

also irgendwie will der Prototype nicht so wie ich will ;-)

Das sit mometan mein Code
PHP-Code:
MovieClip.prototype.positionMC = function(xPosyPos){
    
this.xPos xPos.toLowerCase();
    
this.yPos yPos.toLowerCase();
    
parseFloat(this.xPos)
    
trace(parseFloat(this.xPos))
    if (
parseFloat(this.xPos) == "NaN"){
        
trace("Hallo " this.xPos)
        
this._x this.xPos;
    }
    else{
        switch(
this.xPos){
            case 
'left' :
            case 
'l' :
                
this._x 0;
                
trace("x: Links");
                break;
            case 
'middle' :
            case 
'm' :
                
this._x Stage.width/2-(this._width/2);
                
trace("x: Mitte");
                break;
            case 
'right' :
            case 
'r' :
                
this._x Stage.width-this._width;
                
trace("x: Rechts");
                break;
            default :
                    
trace("Keine Angabe zu X");
        }
    }

aufgerufen durch: test_mc.positionMC('10', 'm')

Das Dumme ist, wenn ich typeof(this.xPos) benutze gibt er mir auch bei 10 ein string zurück und kein number.

Was mach ich falsch? Iwe kann ich herausfinden, dass 10 ne zahl ist?
jetzt dachte ich ich versuchs über parseFloat(this.xPos) und wenn ich NaN zurück bekomme hab ich eben keine Zahl sondern irgendwas anderes, aber ich kann NaN nicht abfragen über if (parseFloat(this.xPos) == "NaN"){ das peilt flash nit.
Hans meisa ist offline   Mit Zitat antworten
Alt 13-10-2006, 12:42   #6 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Zitat:
Zitat von Hans meisa Beitrag anzeigen
das peilt flash nit.
...oder DU peilst hier was nicht.

Ich habe dir ein funktionierendes Beispiel gegeben. Zahlen übergibst du ohne Anführungszeichen und Prozente mit.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager 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 03:03 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele