Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-12-2006, 21:02   #1 (permalink)
ExPraktikant
 
Benutzerbild von hacky
 
Registriert seit: Nov 2003
Ort: Leipzig
Beiträge: 117
Object (Array) Shuffle

Hi Flasher!

Ich habe ein object welches ich mit push fülle:
PHP-Code:
_root.pictureListDB.push({id:idartist:artistpictureURL:pictureURL,webURL:webURL}); 
Die Einträge will ich jetzt würfeln und habe dazu folgenden Protoype hier im Forum gefunden:
PHP-Code:
// Array Würfeln
Array.prototype.shuffle = function() {
    var 
len this.length;
    var 
len;
    
this.correct this[0];
    while (
i--) {
        var 
random(len);
        var 
this[i];
        
this[i] = this[p];
        
this[p] = t;
    }
};
_root.pictureListDB.shuffle(); 
Das funktioniert mit nem Array super, doch mit meinem Object?
Hat Jemand ne Idee?

Beste Grüße
Hacki
__________________
Auge um Auge - Zahn um Zahn

Geändert von hacky (24-12-2006 um 07:13 Uhr) Grund: Rechtschreibung...
hacky ist offline   Mit Zitat antworten
Alt 24-12-2006, 09:30   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
Zitat:
Zitat von hacky Beitrag anzeigen
Ich habe ein object welches ich mit push fülle:
das ist nicht ganz korrekt:
du hast ein array (nur da gibt es den push-befehl) in das du objekte füllst.
du kannst ganz einfach über das array zugreifen. egal, ob da jetzt zahlen, texte oder objekte drin sind.

z.b.
trace(pictureListDB[random(pictureListDB.length)]);
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (24-12-2006 um 09:32 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 24-12-2006, 10:52   #3 (permalink)
ExPraktikant
 
Benutzerbild von hacky
 
Registriert seit: Nov 2003
Ort: Leipzig
Beiträge: 117
Danke für die Weihnachtliche Antwort. :]

Ich hab mir nochmal die Fehlermeldung genauer angeschaut.
Es gab einen Konflikt mit dem FuseKit den ich in meiner Anwendung
eingebunde habe.
Der Fehler lag also gar nicht im Prototype.

Code:
**** FuseFMP cannot initialize argument ArrayShuffle (BitmapFilters cannot be applied to this object type) ****
Diesen Fehler hab ich zwar nicht verstehen und ausmerzen können. (Ich hab auch mal versuch den Prototype anders zu nennen.) Also hab ich mir von Robert Penner die Formel OutQuad geholt und auf den Fusekit verzichtet. Jetzt gehts.
__________________
Auge um Auge - Zahn um Zahn

Geändert von hacky (24-12-2006 um 11:03 Uhr)
hacky ist offline   Mit Zitat antworten
Alt 24-12-2006, 11:09   #4 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
BitmapFilters cannot be applied to this object type

Aber zeig doch noch mal den entsprechenden Code Ausschnitt
sebastian ist offline   Mit Zitat antworten
Alt 24-12-2006, 11:32   #5 (permalink)
ExPraktikant
 
Benutzerbild von hacky
 
Registriert seit: Nov 2003
Ort: Leipzig
Beiträge: 117
Hallo Sebastian!

Du meinst den Prototype? Hier ist er:
Code:
// Array Würfeln
Array.prototype.ArrayShuffle = function() {
	var len = this.length;
	var i = len;
	this.correct = this[0];
	while (i--) {
		var p = random(len);
		var t = this[i];
		trace(t);
		this[i] = this[p];
		this[p] = t;
	}
};
readyXML = function () {
	// Array Würfeln
	pictureListDB.ArrayShuffle();
...
};
Und wie gesagt, ich bin den FusKit ein. Ich habe aber keine Funktion gefunden die ArrayShuffle heist, also im Konflikt stehen könnte.
Code:
import com.mosesSupposes.fuse.*;
ZigoEngine.register(Fuse, PennerEasing, FuseFMP);
ZigoEngine.simpleSetup(Shortcuts, PennerEasing);
Him.. Ich guck grad noch mal in die Doku.
Irgendwie versucht er diesen Prototype mit der FuseKlasse zu verbinden.
__________________
Auge um Auge - Zahn um Zahn

Geändert von hacky (24-12-2006 um 11:35 Uhr)
hacky ist offline   Mit Zitat antworten
Alt 24-12-2006, 11:38   #6 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Kann den Fehler nicht reproduzieren

(Noch eine allgemeine Anmerkung: Wenn du schon mit Fuse arbeitest, solltest
du auch ansonsten sauber arbeiten und dein Code in AS2 anlegen und auf
so Prototype Geschichten verzichten)
sebastian ist offline   Mit Zitat antworten
Alt 24-12-2006, 11:44   #7 (permalink)
ExPraktikant
 
Benutzerbild von hacky
 
Registriert seit: Nov 2003
Ort: Leipzig
Beiträge: 117
Ja verstehe. Dann kanns auch nicht zu solchen Konflikten kommen, weil die Funktionen sauber von einander getrennt sind.
Ich seh schon, ich komm um die objektorientierte-Programmierung nicht rum
Nunja. Letztlich wollte ich nur ein kleines Bild verschieben und hab dafür noch nen kleinen Prototype gebastelt. Das macht mein kleines Projekt auch nicht so aufgeblasen:

ActionScript:
  1. // MovieClip bewegen
  2. MovieClip.prototype.slideTo = function(x, y, d) {
  3.     _root.alST = true;
  4.     if (x == "") {
  5.         x = this._x;
  6.     }
  7.     if (y == "") {
  8.         y = this._y;
  9.     }
  10.     if (this._x != x || this._y != y) {
  11.         this.onEnterFrame = function() {
  12.             var difX = -this._x+x;
  13.             var difY = -this._y+y;
  14.             if (Math.round(Math.abs(difX))>2 || Math.round(Math.abs(difY))>2) {
  15.                 this._x += Math.round(difX/d);
  16.                 this._y += Math.round(difY/d);
  17.             } else {
  18.                 this._x = x;
  19.                 this._y = y;
  20.                 delete this.onEnterFrame;
  21.                 _root.alST = false;
  22.             }
  23.         };
  24.     }
  25. };
Nochmal um AS2 gedrückt ;-)
__________________
Auge um Auge - Zahn um Zahn

Geändert von hacky (24-12-2006 um 21:43 Uhr)
hacky 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 22:58 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele