Цитата:
При первом способе вызова ловлю ошибку:
"1061: Обращение к возможно неопределенному методу getFilter через ссылку статического типа satFilter"
|
Если вам нравится первый способ, сделайте так:

Код AS3:
public class satFilter extends MovieClip
{
public function satFilter():void //constructor
{
}
public function getFilter():ColorMatrixFilter{
var disvolve:Number = 0.5;
var invert:Number = (1 - disvolve);
var invRed:Number = invert * 0.21267;
var invGreen:Number = invert * 0.71516;
var invBlue:Number = invert * 0.07217;
var starkMatrix:Array = new Array();
starkMatrix = starkMatrix.concat([(invRed+disvolve), invGreen, invBlue, 0, 0,]);
starkMatrix = starkMatrix.concat([invRed, (invGreen+disvolve), invBlue, 0, 0,]);
starkMatrix = starkMatrix.concat([invRed, invGreen, (invBlue+disvolve), 0, 0,]);
starkMatrix = starkMatrix.concat([0, 0, 0, 1, 0]);
var filter:ColorMatrixFilter = new ColorMatrixFilter(starkMatrix);
return filter;
}
}
И вызывать:

Код AS3:
public class Main extends MovieClip
{
public function Main():void
{
var myFilter:satFilter = new satFilter();
mc1.filters = [myFilter.getFilter()];
}
}
Цитата:
|
3)Вы добавили атрибут "static" в заголовок функции getFilter(), если его убрать, возникает ошибка 1061: Обращение к возможно неопределенному методу getFilter через ссылку статического типа Class. Как работает функция (про static-переменные понятие я имею) с атрибутом "static"?
|
http://www.flasher.ru/forum/showthread.php?t=125858
Цитата:
|
2)Вы оставили пустым конструктор класса satFilter, тем не менее все работает, однако если проинициализировать в нем же функцию getFilter() (что как я думал раньше обязательно) все работает аналогично, почему тем не менее getFilter() инициализируется даже при пустом конструкторе?
|
Хм...
Потому что это отдельная функция

Не знаю как точнее объяснить.
Цитата:
|
Соответственно, первый вопрос: почему когда я создаю экземпляр класса satFilter под названием myFilter и через него обращаюсь к функции getFilter возникает такая ошибка, а при прямом обращении к классу - нет?
|
Потому что satFilter - статическая функция, и вызывается без создания экземпляра класса.