Zurück   Flashforum > Flash > Zusatzprodukte

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-03-2008, 21:58   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 34
Exclamation MTASC mag shift() und duplicateMovieClip nicht...

Wußtet Ihr schon, daß MTASC mit einigen Flash-Methoden nicht klarkommt?

shift() gibt als Typ immer ein leeres Object zurück;
Workaround für shift:

var erstesElement:String = meinArray.shift();

wird zu:

var erstesElement:String = meinArray[0];
var nutzlos:Object = meinArray.shift();

Und als Ersatz für duplicateMovieClip muß attachMovie verwendet werden.

Kennt Ihr noch mehr Inkompatibilitäten?
heyeli ist offline   Mit Zitat antworten
Alt 19-03-2008, 01:10   #2 (permalink)
may
heyday
 
Registriert seit: Dec 2004
Ort: berlin
Beiträge: 41
der nachfolger von mtasc ist übrigens haxe (www.haxe.org).

dort funktionert dann auch array.shift()
__________________
www.des-teufels-beitrag.de
may ist offline   Mit Zitat antworten
Alt 19-03-2008, 06:55   #3 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Zitat:
Zitat von heyeli Beitrag anzeigen
Wußtet Ihr schon, daß MTASC mit einigen Flash-Methoden nicht klarkommt?

shift() gibt als Typ immer ein leeres Object zurück;
Workaround für shift:

var erstesElement:String = meinArray.shift();

wird zu:

var erstesElement:String = meinArray[0];
var nutzlos:Object = meinArray.shift();

Und als Ersatz für duplicateMovieClip muß attachMovie verwendet werden.

Kennt Ihr noch mehr Inkompatibilitäten?
Bei shift() weiß ich es gerade nicht im Kopf. Aber duplicateMovieClip
funktioniert definitiv in Version 8. In Version 7 (auch in Flash) gibt
duplicateMovieClip noch nicht den erstellen Clip zurück.

Und haXe ist vielleicht ein Nachfolger, aber geht ja in eine ganz andere
Richtung und ist sicherlich keine richtige Alternative.

gruß
sebastian ist offline   Mit Zitat antworten
Alt 20-03-2008, 17:50   #4 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 34
nix da haxe

Wie ich schon sagte: shift() und duplicateMovieClip() werden von MTASC definitiv NICHT unterstützt.
Und HAXE ist natürlich nicht wirklich der Nachfolger von MTASC.
Kennt Ihr noch andere Inkompatibilitäten und welche Workarounds kennt Ihr?
heyeli ist offline   Mit Zitat antworten
Alt 20-03-2008, 20:40   #5 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Hm echt komisch. DuplicateMovieClip funktioniert bei mir wunderbar.

Edit: Gerade getestet und shift() funktioniert auch wie erwartet einwandfrei

Geändert von sebastian (20-03-2008 um 20:50 Uhr)
sebastian ist offline   Mit Zitat antworten
Alt 29-03-2008, 10:18   #6 (permalink)
Nagelneuer User
 
Benutzerbild von hazy fantazy
 
Registriert seit: Dec 2005
Beiträge: 924
Wenn irgendwas fehlt, kannst du es einfach in der toplevel.as nachrüsten.
__________________
The fact that you've got "Replica" written on the side of your gun and the fact that I've got "Desert Eagle written on the side of mine ... :D
hazy fantazy ist offline   Mit Zitat antworten
Alt 02-04-2008, 17:34   #7 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 34
Beispiel für shift()

Hallo Sebastian, teste doch mal folgendes Skript:

PHP-Code:
    static function main():Void{
        
        
    
_root.createTextField("tf",0,0,0,200,200);
    
    var 
meinArray:Array = ["a","b","c","d"];
    
    var 
erstesElement:String meinArray.shift();

    
    
_root.tf.text erstesElement;
    } 
heyeli ist offline   Mit Zitat antworten
Alt 02-04-2008, 17:44   #8 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
duplicateMovieClip und shift funktionieren bei mir perfekt. Musst zumindest
im strikten Modus noch ein Cast ergänzen, aber ansonsten funktioniert
das Script einwandfrei.
sebastian ist offline   Mit Zitat antworten
Alt 02-04-2008, 19:48   #9 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
@ heyeli

Kann eventuell daran liegen das du eine ältere Version von mtasc nutzt.
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 03-04-2008, 03:23   #10 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 34
Question type error Object should be String

Habe übrigens MTASC version 1.13 -
Bei mir kommt allerdings die Kompiler-Warnung: type error Object should be String.
Dies wird auch schon von FDT vorgewarnt..
Wenn MTASC, bzw. FDT shift() nicht als Methode identifizieren, dann halten sie shift() für ein eigenes Object...
in Wirklichkeit hat es aber einen beliebigen Variablentyp!
Dachte, das wäre ein Bug - aber wenn es bei Euch funktioniert, dann muß es ja an etwas anderem liegen..
heyeli ist offline   Mit Zitat antworten
Alt 03-04-2008, 07:13   #11 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Ja, sag doch, das musst du casten.
Du schließt aber daraus, dass duplicateMovieClip und shift nicht funktionieren?


ActionScript:
  1. var erstesElement:String = String(meinArray.shift());




PS: Selbst Flash CS3 erkennt mittlerweile den Fehler und wirft einen Compiler Fehler.

Geändert von sebastian (03-04-2008 um 07:16 Uhr)
sebastian ist offline   Mit Zitat antworten
Alt 03-04-2008, 07:41   #12 (permalink)
Neuer User
 
Registriert seit: Oct 2004
Beiträge: 34
Smile interessant!

Ja richtig, so funktioniert das!
Verstehe zwar nicht, warum der Rückgabewert als Object festgelegt ist,
aber hauptsache es funktioniert.
Also vielen Dank!
heyeli ist offline   Mit Zitat antworten
Alt 03-04-2008, 07:42   #13 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Weil ein Array nicht nur Strings enthalten kann

var a:Array = ["blub", 5, {}];

Und um dem Compiler zu sagen, dass der Wert ein String ist, brauchst du den Cast.
sebastian 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 20:17 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele