Sehr kurze Auszug: Actionscript Verlängerung eines Arrays mit der Methode shuffle ()

Ich hatte bereits darüber gesprochen , wie die Methode shuffle () in Javascript und Actionscript umsetzen . Ich erkannte, tuttaavia, nicht darauf hinzuweisen, dass es in der Lage, Actionscript, Javascript in gleicher Weise zu erweitern, ihre Aufgabe ist Array :

1
2
3
prototype . shuffle = function ( ) { Array . Prototyp. shuffle = function () {
var j : uint , x :*, i : uint = this . length ; i ; j = Math . floor ( Math . random ( ) * i ) , x = this [ -- i ] , this [ i ] = this [ j ] , this [ j ] = x ) ; for (var j: uint , x: * i: uint = dieser Länge, i, j =. Math floor (. Math random () * i), x = this [- i], das [i] =. Diese [j], das [j] = x);
}

Dieser Code kann auch innerhalb einer Klasse eingesetzt werden, zum Beispiel im Konstruktor:

1
2
3
4
5
6
7
8
9
package {
Hello extends MovieClip { public class Hallo erstreckt MovieClip {
Hello ( ) { public function hallo () {
prototype . shuffle = function ( ) { Array . Prototyp. shuffle = function () {
var j : uint , x :*, i : uint = this . length ; i ; j = Math . floor ( Math . random ( ) * i ) , x = this [ -- i ] , this [ i ] = this [ j ] , this [ j ] = x ) ; for (var j: uint , x: * i: uint = dieser Länge, i, j =. Math floor (. Math random () * i), x = this [- i], das [i] =. Diese [j], das [j] = x);
}
}
}
}

: Um dann diese "Verlängerung" ist einfach die meotodo shuffle() von jeder Instanz eines array :

1
2
Array = [ "ciao" , "come" , "va" ] ; var a: Array = ["hallo", "Wie", "sollte"];
; to shuffle ().;

2 Kommentare: "Sehr kurze Auszug: Actionscript Verlängerung eines Arrays mit der Methode shuffle ()"

  1. 27. April 2009 Charles :

    Hallo, für eine Weile, dass ich lesen Ihren Blog, die sehr gepflegt ist und hat viele Tipps und Ideen sind nicht schlecht. Ich habe dich etwas fragen zu diesem Beitrag, eine Sache, die ich nicht klar bin, was den Vorteil gibt es bei der Erweiterung einer Klasse über den Parameter prototype ?
    Ich verwenden in der Regel eine Klasse "MyArray extends Array" , die weitere Methoden, die ich brauche implementiert und in meine Projekte, die,. ) (Vielen Dank an den Polymorphismus Funktionen, die ein Objekt wollen Array sehen es als Array )
    Mit prototype Ich denke an 'dirty' Objekte in mein Design (und abgesehen, die enthalten zu sein elegant wie möglich sein sollte? In den Konstruktor der Document-Klasse?)

    Ich grüße euch und danke für die info :-)

  2. 27. April 2009 Giovambattista Fazioli :

    @ Charles:

    Welchen Vorteil gibt es bei der Erweiterung einer Klasse über den Parameter-Prototyp?

    Hallo Karl, gute Beobachtung! Die Verwendung von prototype geht zurück auf die Tage, als es noch ein ActionScript-Objekt-orientierte Sprache "reifen", wie es Version 3.0 ist. per creare una nuova classe Array personalizzata come hai indicato tu. Doch auch heute, die Verwendung von prototype unterscheidet sich von der Verwendung extends , um eine neue Klasse zu erstellen Array , wie Sie angegeben haben, angepasst haben. Der Vorteil in der Tat, liegt in der Möglichkeit der Verlängerung wahllos alle array , ohne den Typ der Klasse angeben. In der Methode, die Sie Ihnen, was in Ordnung ist und richtig verwendet werden, ist die Verwendung von speziellen Methoden oder Eigenschaften innerhalb der Klasse gebunden ( MyArray zum Beispiel). Mit dem Einsatz von Prototypen sind jedoch alle Arrays erweitert, auch solche, wie geschaffen:

    1
    Array = new Array ( ) var test: Array = new Array ()

    statt zu schreiben

    1
    Array = new MyArray ( ) var test: Array = new MyArray ()

    all'uso di classi estese: Der Vorteil der Nutzung oder Nichtnutzung proptotype hängt von der Situation, aber im Allgemeinen gibt es zwei Gründe für die Bevorzugung proptotype Verwendung der erweiterten Klassen:
    - proptotype weniger Code zu schreiben, nur die Definition
    - Code bereits geschrieben wird die Erweiterung, ohne zu bearbeiten
    Der zweite Punkt, meiner Meinung nach, ist der interessanteste. ) su codice già scritto, senza doverlo modificare. Damit können Sie erweitern die Basis Actionscriopt Objekte (z. B. MovieClip oder Array ) der Code bereits geschrieben, keine Notwendigkeit für die Bearbeitung.
    o nel frame 0 a seconda del tipo di progetto. Im Hinblick auf die Einbeziehung der Code verwende ich eine einfache Datei (Typ array_ext.as ), dass der Hersteller der auch Document Class in den Rahmen, oder 0, je nach Art des Projekts.
    Ich hoffe, dass beantwortet Ihre Fragen ... wenn Sie weitere Fragen haben, kontaktieren Sie uns bitte.

Hinterlasse einen Kommentar

XHTML TAG PERMIT: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> INSERTION CODE:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL 


Stoppen SOPA