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

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-10-2002, 17:48   #1 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
MX: Brightness als Eigenschaft

In einem anderen Forum kam die Frage nach der
(normalerweise nicht existierenden) Eigenschaft
_brightness.

In der wunderbaren Welt von MX kann man diese
Eigenschaft leicht hinzufügen. Hier ist ein möglicher
Weg:

ActionScript:
  1. //im ersten Frame von _root
  2. MovieClip.prototype.addProperty(
  3.     "_brightness",
  4.     function () {
  5.         var t = new Color(this).getTransform();
  6.         return (t.ra + t.ga + t.ba) / 3;
  7.     },
  8.     function (b) {
  9.         new Color(this).setTransform({ra:b, ga:b, ba:b});
  10.     }
  11. );
  12. //
  13. //
  14. //test
  15. createEmptyMovieClip("mc", 1);
  16. with (mc) {
  17.     beginFill(0xff0000);
  18.     lineTo(100, 0);
  19.     lineTo(100, 100);
  20.     lineTo(0, 100);
  21.     endFill();
  22. }
  23. //
  24. mc.onEnterFrame = function() {
  25.     this._brightness = random(100);
  26. };
  27. //ralf bokelberg 10/2002 helpQLODhelp.de
  28.  

mfg r.
bokel ist offline   Mit Zitat antworten
Alt 26-10-2002, 18:01   #2 (permalink)
Trainman
 
Benutzerbild von Hamster2k
 
Registriert seit: Sep 2001
Ort: Wien, Österreich
Beiträge: 1.324
Cool

saub(a)er!
__________________
So much to learn and so little time.

Ich liebe dieses Forum!!
Hamster2k ist offline   Mit Zitat antworten
Alt 26-10-2002, 18:37   #3 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
prima, danke

endlich mal wieder movieclip.prototype in sinnvollem zusammenhang

damit wär ja myClip._color = ...
auch kein problem mehr.

gruss
michael
michael ist offline   Mit Zitat antworten
Alt 26-10-2002, 20:07   #4 (permalink)
auferstanden
 
Benutzerbild von Johannes P.
 
Registriert seit: Sep 2001
Ort: München
Beiträge: 5.247
Hoi,

schon ganz prima, nur müsste das Helligkeitsintervall nicht von -100% bis +100% reichen?
__________________

Gruß
Johannes
¬ Homepage
¬ Tutorials und FAQs Forum
¬ Suchen und Finden
Johannes P. ist offline   Mit Zitat antworten
Alt 26-10-2002, 20:20   #5 (permalink)
auferstanden
 
Benutzerbild von Johannes P.
 
Registriert seit: Sep 2001
Ort: München
Beiträge: 5.247
Aber anstatt nur zu motzen, mach ich mich gleich mal nützlich:
ActionScript:
  1. MovieClip.prototype.addProperty("_color", function () {
  2.     return new Color(this).getRGB().toString(16);
  3. }, function (c) {
  4.     new Color(this).setRGB(parseInt(c, 16));
  5. });
  6. // Aufruf
  7.  
  8. mc._color = "ff00ff";
  9. currentColor = mc._color;
Zitat:
damit wär ja myClip._color = ...
auch kein problem mehr.
__________________

Gruß
Johannes
¬ Homepage
¬ Tutorials und FAQs Forum
¬ Suchen und Finden
Johannes P. ist offline   Mit Zitat antworten
Alt 26-10-2002, 21:01   #6 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
wie wärs damit? (-100% - 0 - 100%)
ActionScript:
  1. //im ersten Frame von _root
  2. MovieClip.prototype.addProperty("_brightness", function ()
  3. {
  4.     var t = new Color(this).getTransform();
  5.     return ((t.rb + t.gb + t.bb) / 3) / 2.56;
  6. }, function (b)
  7. {
  8.     var p = 2.56 * b;
  9.     new Color(this).setTransform({rb:p, gb:p, bb:p});
  10. });
  11. //
  12. //
  13. //test
  14. mc1._brightness = 100;
  15. mc2._brightness = 50;
  16. mc3._brightness = -50;
  17. trace(mc1._brightness);
  18. trace(mc2._brightness);
  19. trace(mc3._brightness);
<edit>
natürlich könnte man auch ohne den umrechnungsfaktor mit werten von -255 bis 255 arbeiten, ich wollte aber das der user mit den gleichen werten wie im eigenschafteninspektor, auch das gleiche ergebnis bekommt. die ungenauigkeiten die sich daraus ergeben sind die gleichen die wir schon von alpha kennen:
ActionScript:
  1. mc._brightness = 70;
  2. trace(mc._brightness);// 69.921875
  3. mc._alpha = 70;
  4. trace(mc._alpha);// 69.921875
  5.  
</edit>

gruss
michael

Geändert von michael (26-10-2002 um 23:05 Uhr)
michael ist offline   Mit Zitat antworten
Alt 26-10-2002, 21:11   #7 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
@Johannes
da würde ich die gängige schreibweise mit 0x bevorzugen:
ActionScript:
  1. MovieClip.prototype.addProperty("_color", function ()
  2. {
  3.     return "0x" + new Color(this).getRGB().toString(16);
  4. }, function (c)
  5. {
  6.     new Color(this).setRGB(c);
  7. });
  8. // Aufruf
  9. mc1._color = 0xff00ff;
  10. mc2._color = mc1._color;
  11. trace(mc2._color);
gruss
michael
michael ist offline   Mit Zitat antworten
Alt 27-10-2002, 00:25   #8 (permalink)
Neuer User
 
Registriert seit: Apr 2002
Ort: Vorm PC
Beiträge: 1.583
@gutknut: die zahl würde stimmen wenn du sie rundest.

ActionScript:
  1. MovieClip.prototype.addProperty("_brightness", function ()
  2. {
  3.         var t = new Color(this).getTransform();
  4.         return Math.round((t.rb + t.gb + t.bb) / 3 * 100 / 0xff);
  5. }, function (b)
  6. {
  7.         var p = 0xff * b / 100;
  8.         new Color(this).setTransform({rb: p, gb: p, bb: p});
  9. });
  10. createEmptyMovieClip("mc1",1);
  11. mc1._brightness = 60;
  12. trace(mc1._brightness);
Gnut ist offline   Mit Zitat antworten
Alt 27-10-2002, 00:28   #9 (permalink)
nerdig working
 
Benutzerbild von michael
 
Registriert seit: Jul 2001
Ort: Hamburg
Beiträge: 5.832
@ gnut
warum mit _brightness genauer sein als flash selbst mit _alpha?

das man es runden kann ist schon klar, trotzdem danke.

gruss
michael
michael ist offline   Mit Zitat antworten
Alt 27-10-2002, 13:55   #10 (permalink)
Achim Math.PI
 
Benutzerbild von bloba
 
Registriert seit: Jul 2001
Ort: cool Colonia
Beiträge: 11.642
Thumbs up

nicht specht her schlecht
drei daumen hoch
gruss
__________________
gruß bloba

2 x onkel² b_d
bloba ist offline   Mit Zitat antworten
Alt 12-05-2003, 18:12   #11 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: dortmund
Beiträge: 60
Question Re: MX: Brightness als Eigenschaft

Habe im Archiv unten nocheinmal zitierten Beitrag gefunden.

Frage mich nun immer noch zwei Dinge:
-Wo soll dieses Script eimgefügt werden,
-und wie spreche ich damit
die Instanz eines Filmsymbols, nennen wir sie mal wieder
"myMovieclip" an?

Viele Grüße,
PP



[QUOTE]Geschrieben von bokel
[B]In einem anderen Forum kam die Frage nach der
(normalerweise nicht existierenden) Eigenschaft
_brightness.

In der wunderbaren Welt von MX kann man diese
Eigenschaft leicht hinzufügen. Hier ist ein möglicher
Weg:

ActionScript:
  1. //im ersten Frame von _root
  2. MovieClip.prototype.addProperty(
  3.     "_brightness",
  4.     function () {
  5.         var t = new Color(this).getTransform();
  6.         return (t.ra + t.ga + t.ba) / 3;
  7.     },
  8.     function (b) {
  9.         new Color(this).setTransform({ra:b, ga:b, ba:b});
  10.     }
  11. );
  12. //
  13. //
  14. //test
  15. createEmptyMovieClip("mc", 1);
  16. with (mc) {
  17.     beginFill(0xff0000);
  18.     lineTo(100, 0);
  19.     lineTo(100, 100);
  20.     lineTo(0, 100);
  21.     endFill();
  22. }
  23. //
  24. mc.onEnterFrame = function() {
  25.     this._brightness = random(100);
  26. };
  27. //ralf bokelberg 10/2002 helpQLODhelp.de
  28.  
peterpawlow ist offline   Mit Zitat antworten
Alt 12-05-2003, 19:32   #12 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Hallo Peter,

den ersten Teil bis zum Kommentar "// test" fügst du in deinem ersten Frame auf der Hauptzeitleiste ein. Danach kannst du die Eigenschaft _brightness überall benutzen. Deinen MovieClip kannst du dann z.B. folgendermassen steuern:

ActionScript:
  1. myMovieclip._brightness = 50;

mfg r.
bokel ist offline   Mit Zitat antworten
Alt 12-05-2003, 19:52   #13 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Thumbs up

super, dass kann man auf jeden Fall mal gebrauchen!
Janoscharlipp ist offline   Mit Zitat antworten
Alt 18-05-2003, 21:19   #14 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Ort: dortmund
Beiträge: 60
Unhappy es klappt und klappt nicht!

Hi Bokel,


habs probiert und probiert, aber es funktioniert nicht. :-(

Hab mal die scripte beigepackt, vieleicht findet ja
jemand dass Problem.
.fla-Datei ist leider auch kompremiert 30mb groß (cd-rom-test),
ließ sich nicht ranhängen.
wenns wen interessiert, mail ich die auch gerne!

Geht um ein Filmsymbol "myMovie", das sich abhängig von Variablen-
Abfragen in der Farbigkeit und in der BRIGHTNESS ändern soll.
Farbigkeit funktioniert problemlos über Farbobjekt "myColor".
Erster Teil Script von Frame 3 + Frame 4 betrifft Sounsteuerung,
ist warscheinlich nicht so interessant.
Im zweiten Teil von Script von Frame 3 + Frame 4 geht es dann u.A.
um die Brightness.


also:


Script Haupleiste Frame 1:
---------------------------------




//Wenn Farbvariable "richtigen" Wert, soll in Hauptleiste, Frame 3/4 Prozedur
//zur farbveränderung ausgefürt werden.

farbwertvariable = 7.1;

//Prozedur in Hauptleiste, Frame 3/4 soll Farbobjekt entsprechend diesem //Variablenwert ausführen.

farbwert = {bb: '100'};



dynamik = 1;

stimmung = 1;


//dieses Script führt die Eigenschaft Brightness ein, die es sonst in Flash-MX
//nicht gibt.


MovieClip.prototype.addProperty(
"_brightness",
function () {
var t = new Color(this).getTransform();
return (t.ra + t.ga + t.ba) / 3;
},
function (b) {
new Color(this).setTransform({ra:b, ga:b, ba:b});
}
);


//Soundobjekt
mus11 = new Sound();
// Verknüpfe das Sound-Objekt s über den Bezeichner mit dem Symbol in der Bibliothek

mus11.attachSound("mus11");

mus12 = new Sound();
mus12.attachSound("mus12");
mus21 = new Sound();
mus21.attachSound("mus21");
mus22 = new Sound();
mus22.attachSound("mus22");

// Create a color object called myColor for the target myMovie

myColor = new Color(myMovie);

// Create a color transform object called myColorTransfrom using
// the generic Object object

myColorTransform = new Object();

// Set the values for myColorTransform
//myColorTransform2 = new Object();

gotoAndPlay(2);





Script Haupleiste Frame 2:
---------------------------------




//läßt erste Musik starten, von Anfang an, kein loop.

mus11.start(0, 0);


//Verändert dass farbobjekt "mycolor" entsprechend "farbwert"

myColor.setTransform(_root.farbwert);
play;




Script Haupleiste Frame 3:
---------------------------------




//mus11
//wenn die Musik zuende, spiele je nach dem eine neue.
//setzte die variable "farbwertvariable" [erstes frame ebenne "script"]
//auf einen neuen Wert.
mus11.onSoundComplete = function() {
mus11.stop();
if (_root.dynamik<4) {
mus12.start();
_root.farbwertvariable=1.1;
}
if (_root.dynamik>4) {
mus22.start();
_root.farbwertvariable=1.2;
}
};
//mus12
//wenn die Musik zuende, spiele je nach dem eine neue.
//setzte die variable "farbwertvariable" [erstes frame ebene "script"]
//auf einen neuen Wert.
mus12.onSoundComplete = function() {
mus12.stop();
if (_root.dynamik<4) {
mus11.start();
_root.farbwertvariable=1.3;
}
if (_root.dynamik>4) {
mus21.start();
_root.farbwertvariable=1.4;
}
};
//mus21
//wenn die Musik zuende, spiele je nach dem eine neue.
//setzte die variable "farbwertvariable" [erstes frame ebenne "script"]
//auf einen neuen Wert.
mus21.onSoundComplete = function() {
mus21.stop();
if (_root.dynamik<4) {
mus11.start();
_root.farbwertvariable=2.1;
}
if (_root.dynamik>4) {
mus22.start();
_root.farbwertvariable=2.2;
}
};
//mus22
//wenn die Musik zuende, spiele je nach dem eine neue.
//setzte die variable "farbwertvariable" [erstes frame ebenne "script"]
//auf einen neuen Wert.
mus22.onSoundComplete = function() {
mus22.stop();
if (_root.dynamik<4) {
mus11.start();
_root.farbwertvariable=2.3;
}
if (_root.dynamik>4) {
mus21.start();
_root.farbwertvariable=2.4;
}
};

//wenn "farbvariable" genau diesen wert hat, dann setze die Variable "farbwert"
//auf diesen wert
//verändere das farbobjekt "myColor" entsprechend "MyColorTransform".
//Der Wert von "myColorTransform" folgt aus der Variable "farbwert"
//[siehe frame 1 Ebenne Script].
//Diese Prozedur taucht im folgenden für 8 verschiedenne "farbwert"-Werte
//8 mal auf.

if (_root.farbwertvariable == 1.1) {
//if (_root.farbwert != {bb: '20'}) {
_root.farbwert = {bb: '20'};
myMovie._brightness = 30;
myColor.setTransform(_root.farbwert);
//}
}

if (_root.farbwertvariable == 1.2) {
// if (_root.farbwert != {bb: '80'}) {
_root.farbwert = {bb: '80'};
myMovie._brightness = 100;
myColor.setTransform(_root.farbwert);

//}


}
if (_root.farbwertvariable == 1.3) {
// if (_root.farbwert != {rb: '40', gb: '40}) {
_root.farbwert = {rb: '40', gb: '40'};
myMovie._brightness = 50;

myColor.setTransform(_root.farbwert);
// }


}
if (_root.farbwertvariable == 1.4) {
// if (_root.farbwert != {rb: '20', gb: '20'}) {
_root.farbwert = {rb:'20', gb:'20'};
myMovie._brightness = 130;
myColor.setTransform(_root.farbwert);
// }
}
if (_root.farbwertvariable == 2.1) {
// if (_root.farbwert != {rb: '60', gb: '30'}) {
_root.farbwert = {rb: '60', gb: '30'};
myMovie._brightness = 80;
myColor.setTransform(_root.farbwert);
// }
}
if (_root.farbwertvariable == 2.2) {
// if (_root.farbwert != {rb: '30', gb: '20'}) {
_root.farbwert = {rb:'30', gb:'20'};
myMovie._brightness = 00;
myColor.setTransform(_root.farbwert);
// }
}
if (_root.farbwertvariable == 2.3) {
// if (_root.farbwert != {rb: '50', bb: '50'}) {
_root.farbwert = {rb: '50', bb: '50'};
myMovie._brightness = 15;
myColor.setTransform(_root.farbwert);
// }
}
if (_root.farbwertvariable == 2.4) {
// if (_root.farbwert != {rb: '40', bb: '40'}) {
_root.farbwert = {rb:'40', bb:'40'};
myMovie._brightness = 20;
myColor.setTransform(_root.farbwert);
// }
}
//nun soll zu frame 4 gespielt werden, damit
//auch langsame farbübergänge machbar sind. (Vor-Rücksprung)
play;




Script Haupleiste Frame 4:
---------------------------------



wie Frame 3, nur letzte drei Zeilen anders:

//nun soll zu frame 3 gespielt werden, damit
//auch langsame farbübergänge machbar sind. (Vor-Rücksprung)
gotoAndPlay(3);




Viele Grüße,
ein leicht entnervter
sich redlich bemüht habender

Peter Pawlow
peterpawlow ist offline   Mit Zitat antworten
Alt 19-05-2003, 12:05   #15 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Hallo Peter,

eigentlich sollte es klappen.
Veröffentlichst du als MX ?
Und erstellst du deinen Projektor auch mit MX ?

mfg r.
bokel 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:35 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele