Есть класс-родитель и несколько унаследованных от него потомков.
Код AS3:
public class parent
{
protected static var b:Bitmap;
//...
public static function setBitmap(_b:Bitmap):void
{
b = _b;
}
}
Код AS3:
public class child1 extends parent
{
//...
public function foo(_b:Bitmap):void
{
//...
setBitmap(_b);
}
}
Код AS3:
public class child2 extends parent
{
//...
public function bar(_b:Bitmap):void
{
//...
setBitmap(_b);
}
}
В ходе работы классов потомков периодически нужно заносить в переменную b каждого класса потомка битмап. Для этого я вызываю общую для них всех (а потому написанную в классе-родителе) функцию setBitmap. Но она заносит битмап в static переменную родителя, а не класса-потомка, который её вызвал. А нужно именно в static переменную класса потомка.
Понятно, что это можно решить, скопировав функцию setBitmap в каждый класс-потомок вместо класса родителя. Но это не правильно. (я привёл упрощённый пример, на практике setBitmap содержит много кода, хотелось бы менять его из одного места, а не из 20).
Понятно, что можно использовать getQualifiedClassName в паре с getDefinitionByName, чтобы в родителе всё таки записать битмап в правильный класс. Но неужели нет более простого решения?