Zurück   Flashforum > Flash > ActionScript > Softwarearchitektur und Entwurfsmuster

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-09-2003, 10:34   #1 (permalink)
...
 
Registriert seit: Oct 2002
Ort: Nürnberg
Beiträge: 3.611
kl. colorPicker

hab mir grade mal ein bischen Gedanken gemacht, wie man eine Hexa-Palette am besten aufbauen kann.
Verbesserungen Kritik erwünscht
ActionScript:
  1. // ************************* //
  2. //     create ColPicker     //
  3. // [email]mail@thorben-schmitt.de[/email] //
  4. // ************************* //
  5. ColPatt = function (si) {
  6.     d = ["00", "33", "66", "99", "CC", "FF"];
  7. };
  8. ColPatt.prototype = new MovieClip();
  9. o = ColPatt.prototype;
  10. o.getCol = function(v) {
  11.     v.useHandCursor = 0;
  12.     v.onRollOver = function() {
  13.         trace(this.choCol);
  14.     };
  15. };
  16. o.mkClip = function(col, d, x, y) {
  17.     var q = 10;
  18.     var c = this.createEmptyMovieClip("patt", d);
  19.     c.beginFill(col), c.lineStyle(0), c.lineTo(q, 0), c.lineTo(q, q), c.lineTo(0, q), c.lineTo(0, 0), c.endFill();
  20.     c._x=x, c._y=y, c.choCol=col, this.getCol(c);
  21. };
  22. o.createColPatt = function() {
  23.     t = new Array();
  24.     for (k=0; k<6; k++) {
  25.         t[k] = new Array();
  26.         for (j=0; j<6; j++) {
  27.             t[k][j] = new Array();
  28.             for (u=0; u<6; u++) {
  29.                 u>2 ? diff=60 : diff=0;
  30.                 n++;
  31.                 this.mkClip("0x"+d[u]+d[j]+d[k], n, (j+u*6)*10-diff*3, k*10+diff);
  32.                 t[k][j][u] = "0x"+d[u]+d[j]+d[k];
  33.             }
  34.         }
  35.     }
  36. };
  37. u = this;
  38. u.__proto__ = new ColPatt();
  39. u.createColPatt();
thorben.schmitt ist offline   Mit Zitat antworten
Alt 09-09-2003, 10:52   #2 (permalink)
thinkin aBout tha lib.
 
Benutzerbild von kaneda
 
Registriert seit: Nov 2001
Ort: Kölle
Beiträge: 1.379
Hmm ...

Erst mal THumbs Up, tolle Sache.

Verbesserungsvorschläge:

Eventhandler für onRolloverColor, onReleaseColor etc. bzw. auch gestalterisches Rollover dafür.

Dynamische Farblevel (also wieviele Farben in welchen Abständen dargestellt werden sollen)

Kaum eine Variable wird mit "var" gesetzt ?

d ohne this ?
__________________
Back to community with http://leichtgewicht.at
kaneda ist offline   Mit Zitat antworten
Alt 09-09-2003, 17:29   #3 (permalink)
MiM
Neuer User
 
Registriert seit: Sep 2001
Ort: Neckarsulm
Beiträge: 273
Thumbs up

Wenig code und das Ergebnis sieht gut aus.
Gefällt mir.
Ich würde nur ein paar Rechnungen in ne extra Funktion mit nem erklärenden Namen auslagern, weil ich oft Probleme hab en paar Rechnungen zu verstehen und mich nicht jedes Mal wieder von neuem überlegen möchte was da jetzt genau ausgerechnet wird.
z.B.
(j+u*6)*10-diff*3
MiM ist offline   Mit Zitat antworten
Alt 09-09-2003, 17:47   #4 (permalink)
hOk
Neuer User
 
Benutzerbild von hOk
 
Registriert seit: Jun 2001
Ort: berlin
Beiträge: 829
Hammer,
sehr schickes Teil, dankeschön.

Das ist ein lustiger überfall:
ActionScript:
  1. u = this;
  2. u.__proto__ = new ColPatt();
  3. u.createColPatt();

netten Gruß, Holger
__________________
gobogo
hOk ist offline   Mit Zitat antworten
Alt 09-09-2003, 17:50   #5 (permalink)
Steffen G.
 
Benutzerbild von Tschdaeff
 
Registriert seit: Aug 2001
Ort: Ba-Wü
Beiträge: 4.123
warum übergibst du ein argument

ActionScript:
  1. ColPatt = function (si) {



aber ansonsten ist es echt cool

cu mfg
Tschdaeff
__________________
mod@
www.flashbattle.de
www.steffen-guse.de
------------------------------------

Tschdaeff ist offline   Mit Zitat antworten
Alt 09-09-2003, 18:17   #6 (permalink)
Coalado
 
Registriert seit: Jun 2001
Ort: Lagcity.de
Beiträge: 683
der Übersicht zu Liebe hätte man etwas ausdrucksstärkere Variablennamen verwenden können.... ansonsten sehr schön
tumetom
tumetom ist offline   Mit Zitat antworten
Alt 10-09-2003, 07:19   #7 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
Thumbs up

echt schräg-schön !
warrantmaster ist offline   Mit Zitat antworten
Alt 10-09-2003, 08:41   #8 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
Thumbs up

sehr schön und kompakt...... nice!
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)
Scrawer ist offline   Mit Zitat antworten
Alt 13-03-2004, 17:08   #9 (permalink)
nky
Bontempi Punk
 
Benutzerbild von nky
 
Registriert seit: Dec 2001
Ort: Dtld/Pfalz
Beiträge: 4.185
sieht fein aus !
ich hab gerade versucht nen Zoom einzubauen...allerdings komm ich mit den tiefen nicht ganz klar ...habe zwar ein swapdetphs eingbeaut - aber die vergrößerten felder liegen dennoch i hintergrund
ActionScript:
  1. o.getCol = function(v) {
  2.         v.useHandCursor = 0;       
  3.         v.onRollOver = function() {
  4.                 trace(this.choCol);
  5.                 this._xscale+=200;
  6.                 this._yscale+=200;
  7.                 this.swapDepths(9999)
  8.         };
  9.         v.onRollOut = function() {
  10.                 this._xscale-=200;
  11.                 this._yscale-=200;
  12.         };
  13.        
  14. };

Gruss nky
nky ist offline   Mit Zitat antworten
Alt 15-03-2004, 13:08   #10 (permalink)
...
 
Registriert seit: Oct 2002
Ort: Nürnberg
Beiträge: 3.611
du musst den farbfeldern eindeutige instanznamen geben:
ActionScript:
  1. ColPatt = function () {
  2.     d = ["00", "33", "66", "99", "CC", "FF"];
  3. };
  4. ColPatt.prototype = new MovieClip();
  5. o = ColPatt.prototype;
  6. o.mkClip = function(col, d, x, y) {
  7.     var q = 10;
  8.     var c = this.createEmptyMovieClip("patt_"+col, d);
  9.     c.beginFill(col), c.lineStyle(0), c.lineTo(q, 0), c.lineTo(q, q), c.lineTo(0, q), c.lineTo(0, 0), c.endFill();
  10.     c._x=x, c._y=y, c.choCol=col, this.getCol(c), c.oldDepth=d;
  11. };
  12. o.createColPatt = function() {
  13.     t = new Array();
  14.     for (k=0; k<6; k++) {
  15.         t[k] = new Array();
  16.         for (j=0; j<6; j++) {
  17.             t[k][j] = new Array();
  18.             for (u=0; u<6; u++) {
  19.                 u>2 ? diff=60 : diff=0;
  20.                 n++;
  21.                 this.mkClip("0x"+d[u]+d[j]+d[k], n, (j+u*6)*10-diff*3, k*10+diff);
  22.                 t[k][j][u] = "0x"+d[u]+d[j]+d[k];
  23.             }
  24.         }
  25.     }
  26.     this.maxDepth = n;
  27. };
  28. o.getCol = function(v) {
  29.     v.useHandCursor = 0;
  30.     v.onRollOver = function() {
  31.         this._width = this._height=30;
  32.         this.swapDepths(this._parent.maxDepth+1);
  33.     };
  34.     v.onRollOut = function() {
  35.         this._width = this._height=10;
  36.         this.swapDepths(this.oldDepth);
  37.     };
  38. };
  39. u = this;
  40. u.__proto__ = new ColPatt();
  41. u.createColPatt();

thorben.schmitt ist offline   Mit Zitat antworten
Alt 15-03-2004, 13:11   #11 (permalink)
nky
Bontempi Punk
 
Benutzerbild von nky
 
Registriert seit: Dec 2001
Ort: Dtld/Pfalz
Beiträge: 4.185
vielen vielen lieben Dank - damit werd ich klarkommen !

Gruss nky
nky 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 15:30 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele