![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Есть такой код из Пеннера:
Color.prototype.setBrightness = function (bright){
var trans = this.getTransform();
with (trans){
ra = ga = ba = 100 - Math.abs (bright);
rb = gb = bb = (bright > 0) ? bright * (256/100) : 0;
}
this.setTransform (trans);
}
MovieClip.prototype.setBrightness = function (bright){
(new Color(this)).setBrightness (bright);
}
mc.setBrightness (50);
Вопрос: так почему не работает конструкция (new Color(this)) для вновь созданного метода ?
__________________
Love & Peace! Последний раз редактировалось ethereal999; 16.03.2006 в 02:33. |
|
|||||
|
Эксперимент показал, что такой синтаксис (*new Smth().func()*) работает только с экземплярами Object
почему - самому интересно |
|
|||||
|
ну раз уж заговорил про Color, то я немного переработал метод Пеннера с учетом того, что в 8-ке Color не приветствуется:
import flash.geom.Transform;
import flash.geom.ColorTransform;
MovieClip.prototype.setBrightness = function (bright){
var mult = 1 - Math.abs (bright) / 100;
var offset = (bright > 0) ? bright * 2.56 : 0;
(new Transform (this)).colorTransform = new ColorTransform (mult, mult, mult, this._alpha / 100, offset, offset, offset, 0);
}
mc.setBrightness (50);
__________________
Love & Peace! |
|
|||||
|
это конечно клево, но это не объясняет.
подождем матерых теоретиков. |
|
|||||
|
а так?
Color.prototype.setBrightness = function(bright) {
var trans = this.getTransform();
with (trans) {
ra = ga=ba=100-Math.abs(bright);
rb = gb=bb=(bright>0) ? bright*(256/100) : 0;
}
this.setTransform(trans);
};
MovieClip.prototype.setBrightness = function(bright) {
Object(new Color(this)).setBrightness(bright);
};
mc.setBrightness(50);
|
|
|||||
|
andr64, я тебе могу написать 300 способов реализовать этот алгоритм, но ни один из них не является объяснением того, почему не работает самый первый.
|
|
|||||
|
гы, интересно девки пляшуть %(
если вызывать методы Color которые определены по умолчанию то все работает. |
|
|||||
|
Цитата:
компилируем как AS1 и все ОК. зы: второй вариант проходит, потому что var c не типизирована (проверки нет), поставь var c : Color и получишь тот же еррор.. зыы:проходит и такой вариант (компилятор 'не знает' чего вызываем): Последний раз редактировалось silin; 16.03.2006 в 20:56. |
|
|||||
|
andr64
Отлищщно ! Спасибо, дружище. silin ох уж эти заковыристости...
__________________
Love & Peace! Последний раз редактировалось ethereal999; 16.03.2006 в 21:00. |
![]() |
![]() |
Часовой пояс GMT +4, время: 10:22. |
|
|
« Предыдущая тема | Следующая тема » |
|
|