PaletteMap bug?

by Albert
♥0 | Line 32 | Modified 2015-12-10 19:55:56 | MIT License
play

ActionScript3 source code

/**
 * Copyright Albert ( http://wonderfl.net/user/Albert )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/tu4z
 */

//http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html#paletteMap()
//There are some bug in palerreMap.
//Click the image a few time, and it isn't give back 0xff0000 but 0xf00000 instead !?
//Update 2015: seems like they fixed the bug
package {
    import flash.events.MouseEvent;
    import flash.display.Sprite;
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.geom.Rectangle;
    import flash.geom.Point;
    import flash.events.Event;

    public class FlashTest extends Sprite {
        private var myBitmapData:BitmapData;
        private var redArray:Array = new Array(256);
        private var greenArray:Array = new Array(256);        
        private var bottomHalf:Rectangle = new Rectangle(0, 40, 100, 40);
        private var pt:Point = new Point(0, 40);
                    
        public function FlashTest() {
            myBitmapData = new BitmapData(80, 80, false, 0x00FF0000);
            myBitmapData.fillRect(new Rectangle(20, 20, 40, 40), 0x0000FF00);
            
            for(var i:uint = 0; i < 255; i++) {
                redArray[i] = 0x00000000;
                greenArray[i] = 0x00000000;
            }
            
            redArray[0xFF] = 0x0000FF00; //from red to green
            greenArray[0xFF] = 0x00FF00000;
            
             //myBitmapData.paletteMap(myBitmapData, bottomHalf, pt, redArray, greenArray);
            var bm1:Bitmap = new Bitmap(myBitmapData);
            addChild(bm1);
            stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);       
        }
        
        private function onMouseDown(e:MouseEvent):void {
            myBitmapData.paletteMap(myBitmapData, bottomHalf, pt, redArray, greenArray);             
        } 
    }
}