Я пытаюсь создать графический редактор во Flex 4.5.
Однако есть одна маленькая вещь, которая не работает должным образом.Вот мой код:
private function returnCropIndicatorBmpDataForTopLeft():BitmapData{
var topLeftX:int = 0;
var topLeftY:int = 0;
var topRightX:int = _bmpData.width;
var topRightY:int = 0;
var bottomRightX:int = _bmpData.width;
var bottomRightY:int = _bmpData.height;
var bottomLeftX:int = 0;
var bottomLeftY:int = _bmpData.height;
var cropIconX:int = _mouseX;
var cropIconY:int = _mouseY;
var temporaryBitmapData:BitmapData = _bmpData;
var originalColor:uint;
var dimmedColor:uint = 0x202020;
for (var i:int = 0; i < _bmpData.width; i++)
{
for (var j:int = 0; j < _bmpData.height; j++)
{
originalColor = _bmpData.getPixel(i,j);
if(i>cropIconX && j>cropIconY){
temporaryBitmapData.setPixel(i,j,originalColor);
}else{
temporaryBitmapData.setPixel(i,j,dimmedColor);
}
}
}
/*
*by the end of this loop, we have, in the temporaryBitmapData variable, a version of the _bmpData,
*the area to be cropped out dimmed a little bit.
*/
return temporaryBitmapData;
}
, если вы внимательно посмотрите внутрь первого if в самом внутреннем цикле для ,
temporaryBitmapData.setPixel(i,j,originalColor);
этот бит кода должен выполнять следующее:
Если этот (i, j) пиксель находится на вне «области, подлежащей вырезке», топерекрасьте его в исходный цвет пикселя.
Это просто не может заставить это работать !!!!
Я заменил эту строку некоторым жестко закодированным значением (скажем, 0xFFFFFF длябелый) и это сработало, так что проблема не в этом ....
Надеюсь, вы, ребята, можете помочь мне, я потратил более 4 часов на это уже пробуя много разных подходов !!
PS> Я отладил этот код в FB 4.5 и установил точку останова в этом самом операторе if.По какой-то причине переменная _bmpData, , в которой я хочу получить исходный цвет пикселя от , показывает маленький красный квадрат рядом с ним .... Возможно, это что-то указывает .. возможно, это как-тотокарно-'locked '??Я не знаю, надеюсь, кто-то может понять!
РЕДАКТИРОВАТЬ Проблема, с которой я столкнулся, заключается в следующем: затемнение изображения работает нормально, но если я затем переместлю курсор мыши обратно в область, которая затемнена, тоИсходное изображение не перекрашивается, как ожидалось.