| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Apr 2012
Beiträge: 4
| Kurzschreibweisen...
Warum kann ich var trans:ColorTransform = mcFarbKreis.transform.colorTransform; trans.redMultiplier /=2; mcFarbKreis.transform.colorTransform = trans; nicht eretzen durch: mcFarbKreis.transform.colorTransform.redMultiplier /= 2; |
| | |
| | #2 (permalink) |
| Keine Panik Registriert seit: Apr 2010 Ort: Düsseldorf (im ernst)
Beiträge: 2.277
|
weil Transform.colorTransform eine Kopie des intern verwendeten Objektes zurückgibt, keine Referenz. das selbe beim setzen der Eigenschaf, da wird eine Kopie deines Objektes intern gespeichert. Das ist bei allen Objekten in Transform so, und beim filters Array des DisplayObjects. wieso das gemacht wird? weil ColorTransform, wie auch Matrix, oder Array nicht mitteilen können, wenn sie geändert wurden. Wenn also mc.transform.colorTransform.redMultiplier /= 2 einfach so den Wert ändern würde, wäre der Wert geändert, und keine Sau bekommt es mit. und wenn du jetzt abwägs: (jedes Frame) * (jedes Objekt auf der Bühne) * (jedes Objekt in Transform) * (alle Eigenschaften des Objektes) überprüfen ob da was geändert wurde oder: den Programmierer zwingen, bei einer Änderung, das geänderte Objekt neu zu setzen. (2 Zeilen Code / Änderung) was hältst du für die bessere Alternative? |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |