Да, я пробовал и этим вариантом снимать данные с BitmapData...
Кстати, должен покаяться (как бы ни было досадно это делать) - поторопился отрапортовать, что удовлетворил свой "академический интерес"

... Давно не ощущал себя в такой прострации:
чтобы не гонять бессмысленные циклы, изменим

Код AS3:
while(i < 150)
, добавим переменную

Код AS3:
var trigg:int = 0;
и внутрь var paintBm:

Код AS3:
trigg = 1 - trigg;
var vvv:Vector.<Vector.<Number>> = Vector.<Vector.<Number>>([Vector.<Number>([5, 5, 20, 5, 20, 25, 5, 25, 5, 5]), Vector.<Number>([15, 15, 30, 15, 30, 35, 15, 35, 15, 15])]);
tmpSh.graphics.drawPath(commands, vvv[trigg]);
и в итоге:
trigg:0; color:0xff0000,0xff00ff
trigg:1; color:0xff0000
trigg:0; color:0xff0000,0xff00ff
Цвета второго прямоугольника игнорированы при любом начальном значении trigg...
Однако, если исказим углы прямоугольников

Код AS3:
var vvv:Vector.<Vector.<Number>> = Vector.<Vector.<Number>>([Vector.<Number>([7, 5, 20, 5, 20, 25, 5, 25, 7, 5]), Vector.<Number>([10, 15, 30, 15, 30, 35, 15, 35, 10, 15])]);
то, надо полагать, благодаря размытию, получим:
trigg:0; color:0xff0000,0xff001f,0xff003f,0xff007f,0xff009f,0xff00bf,0xff00ff
trigg:1; color:0xff0000,0xff00df,0xff009f,0xff005f,0xff001f,0xff00ff
trigg:0; color:0xff0000,0xff001f,0xff003f,0xff007f,0xff009f,0xff00bf,0xff00ff
Попытки отследить связи через отладчик меня не навели ни на какие выводы о причинах такого загадочного поведения... Возможно был недостаточно внимателен, возможно мое знание flash'a and AS изобилует пробелами, что вполне вероятно, т.к. увлекся этим недавно,... но озадачен. Возможно, допускаю некое хулиганство в конструкторе класса, но мне оно не очевидно.
Добавлено через 20 часов 4 минуты
Если код изменить таким образом

Код AS3:
public function MyClass() {
var thisbitmapdata:BitmapData = new BitmapData(800, 600, true, 0x80FFFFFF);
this.bitmapData = thisbitmapdata;
var commands:Vector.<int> = Vector.<int>([1, 2, 2, 2, 2]);
var data:Vector.<Number> = Vector.<Number>([5, 5, 19, 5, 19, 19, 5, 19, 5, 5]);
var i:int = 0;
var pixelValue:uint = 0;
var paintBm:Function = function(bmp:Bitmap):void {
var arr:Vector.<String> = new Vector.<String>();
var tmpSh:Shape = new Shape();
tmpSh.graphics.beginFill(0xFF00FF, 1);
tmpSh.graphics.drawPath(commands, data);
var r:Rectangle = tmpSh.getBounds(stage);
var w:int = r.width;
var h:int = r.height;
var bmpdata:BitmapData = new BitmapData(w, h, false, 0xFF0000);
bmpdata.draw(tmpSh);
var mtr:Matrix = new Matrix(1, 0, 0, 1, 30 + i*10, r.topLeft.y);
var aSh:Bitmap = new Bitmap();
var aShbmpdata:BitmapData = new BitmapData(w, h, false, 0x00DDCC);
for (var m:int = 0; m < w; m++) {
for (var j:int = 0; j < h; j++) {
pixelValue = bmpdata.getPixel(m, j);
if (pixelValue == 0xFF00FF) aShbmpdata.setPixel(m, j, pixelValue);
if (arr.length == 0 || arr.indexOf(("0x"+pixelValue.toString(16))) < 0) arr.push("0x"+ pixelValue.toString(16));
}
}
arr.splice(0, arr.length);
aSh.bitmapData = aShbmpdata;
bmp.bitmapData.draw(tmpSh);
bmp.bitmapData.draw(aSh, mtr, null, null, null, false);
tmpSh.graphics.clear();
bmpdata.dispose();
}
while(i < 20) {
for (var e:int = 0; e < data.length; e++ ) {
data[e] += i;
}
paintBm(this);
i +=2;
}
}
то создается впечатление, что метод getPixel возвращает пиксели из области, которую объект успешно покидает, и которая определяется начальным getBounds объекта. Не придумал лучшего, как зарегистрировать баг в базе данных Адоба
#2933259, но, судя по датам уже имеющихся багов, это надолго.. Я не вижу, в чем может быть некорректность используемого мной приема, а отказываться от него жаль, т.к. сильно экономит код.