forked from: forked from: Sample of LCDBitmap
forked from forked from: Sample of LCDBitmap (diff: 188)
ActionScript3 source code
/**
* Copyright hacker_d9x06x60 ( http://wonderfl.net/user/hacker_d9x06x60 )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/724K
*/
package%0D%7B%0D%09import%20flash.display.BitmapData%3B%0D%09import%20flash.display.Sprite%3B%0D%09import%20flash.display.StageQuality%3B%0D%09import%20flash.events.Event%3B%0D%09import%20flash.media.Camera%3B%0D%09import%20flash.media.Video%3B%0D%09%0D%09%5BSWF(width%20%3D%20465%2C%20height%20%3D%20465%2C%20backgroundColor%20%3D%200x000000%2C%20frameRate%20%3D%2030)%5D%0D%09public%20class%20VideoSample%20extends%20Sprite%0D%09%7B%0D%09%09private%20static%20const%20SOURCE_VIDEO_WIDTH%3Auint%20%3D%2060%3B%0D%09%09private%20static%20const%20SOURCE_VIDEO_HEIGHT%3Auint%20%3D%2045%3B%0D%09%09%0D%09%09public%20function%20VideoSample()%0D%09%09%7B%0D%09%09%09setupStage()%3B%0D%09%09%09if%20(setupVideo())%20%7B%0D%09%09%09%09setupLCDBitmap()%3B%0D%09%09%09%7D%0D%09%09%7D%0D%09%09%0D%09%09private%20var%20_video%3AVideo%3B%0D%09%09private%20var%20_videoBitmapData%3ABitmapData%3B%0D%09%09%0D%09%09private%20function%20setupStage()%3Avoid%0D%09%09%7B%0D%09%09%09Wonderfl.capture_delay(10)%3B%0D%09%09%09stage.quality%20%3D%20StageQuality.LOW%3B%0D%09%09%7D%0D%09%09%0D%09%09private%20function%20setupVideo()%3ABoolean%0D%09%09%7B%0D%09%09%09%2F*var%20camera%3ACamera%20%3D%20Camera.getCamera()%3B%0D%09%09%09if%20(camera%20%3D%3D%20null)%20%7B%0D%09%09%09%09return%20false%3B%0D%09%09%09%7D%0D%09%09%09*%2F%0D%09%09%09_video%20%3D%20new%20Video()%3B%2F%2FSOURCE_VIDEO_WIDTH%2C%20SOURCE_VIDEO_HEIGHT)%3B%0D%09%09%09_video.play(%22http%3A%2F%2Fwww.mediacollege.com%2Fvideo-gallery%2Ftestclips%2F20051210-w50s.flv%22)%3B%0D%09%09%09%2F%2F_video.attachCamera(camera)%3B%0D%09%09%09_videoBitmapData%20%3D%20new%20BitmapData(_video.width%2C%20_video.height%2C%20false%2C%200x000000)%3B%0D%09%09%09addEventListener(Event.ENTER_FRAME%2C%20videoEnterFrameHandler)%3B%0D%09%09%09return%20true%3B%0D%09%09%7D%0D%09%09%0D%09%09private%20function%20videoEnterFrameHandler(e%3AEvent)%3Avoid%0D%09%09%7B%0D%09%09%09_videoBitmapData.fillRect(_videoBitmapData.rect%2C%200x000000)%3B%0D%09%09%09_videoBitmapData.draw(_video)%3B%0D%09%09%7D%0D%09%09%0D%09%09private%20function%20setupLCDBitmap()%3Avoid%0D%09%09%7B%0D%09%09%09var%20lcd%3ALCDBitmap%20%3D%20new%20LCDBitmap(_videoBitmapData)%3B%0D%09%09%09lcd.x%20%3D%20Math.floor((stage.stageWidth%20-%20lcd.width)%20%2F%202)%3B%0D%09%09%09lcd.y%20%3D%20Math.floor((stage.stageHeight%20-%20lcd.height)%20%2F%202)%3B%0D%09%09%09addChild(lcd)%3B%0D%09%09%7D%0D%09%7D%0D%7D%0D%0D%2F*%0D%20*%20LCDBitmap%0D%20*%20%0D%20*%20Licensed%20under%20the%20MIT%20License%0D%20*%20%0D%20*%20Copyright%20(c)%202009%20Jin%20Saburi%20(metalred.com)%2C%0D%20*%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20BeInteractive!%20(www.be-interactive.org)%20and%0D%20*%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Spark%20project%20%20(www.libspark.org)%0D%20*%20%0D%20*%20Permission%20is%20hereby%20granted%2C%20free%20of%20charge%2C%20to%20any%20person%20obtaining%20a%20copy%0D%20*%20of%20this%20software%20and%20associated%20documentation%20files%20(the%20%22Software%22)%2C%20to%20deal%0D%20*%20in%20the%20Software%20without%20restriction%2C%20including%20without%20limitation%20the%20rights%0D%20*%20to%20use%2C%20copy%2C%20modify%2C%20merge%2C%20publish%2C%20distribute%2C%20sublicense%2C%20and%2For%20sell%0D%20*%20copies%20of%20the%20Software%2C%20and%20to%20permit%20persons%20to%20whom%20the%20Software%20is%0D%20*%20furnished%20to%20do%20so%2C%20subject%20to%20the%20following%20conditions%3A%0D%20*%20%0D%20*%20The%20above%20copyright%20notice%20and%20this%20permission%20notice%20shall%20be%20included%20in%0D%20*%20all%20copies%20or%20substantial%20portions%20of%20the%20Software.%0D%20*%20%0D%20*%20THE%20SOFTWARE%20IS%20PROVIDED%20%22AS%20IS%22%2C%20WITHOUT%20WARRANTY%20OF%20ANY%20KIND%2C%20EXPRESS%20OR%0D%20*%20IMPLIED%2C%20INCLUDING%20BUT%20NOT%20LIMITED%20TO%20THE%20WARRANTIES%20OF%20MERCHANTABILITY%2C%0D%20*%20FITNESS%20FOR%20A%20PARTICULAR%20PURPOSE%20AND%20NONINFRINGEMENT.%20IN%20NO%20EVENT%20SHALL%20THE%0D%20*%20AUTHORS%20OR%20COPYRIGHT%20HOLDERS%20BE%20LIABLE%20FOR%20ANY%20CLAIM%2C%20DAMAGES%20OR%20OTHER%0D%20*%20LIABILITY%2C%20WHETHER%20IN%20AN%20ACTION%20OF%20CONTRACT%2C%20TORT%20OR%20OTHERWISE%2C%20ARISING%20FROM%2C%0D%20*%20OUT%20OF%20OR%20IN%20CONNECTION%20WITH%20THE%20SOFTWARE%20OR%20THE%20USE%20OR%20OTHER%20DEALINGS%20IN%0D%20*%20THE%20SOFTWARE.%0D%20*%20%0D%20*%2F%0D%0Dimport%20flash.display.Bitmap%3B%0Dimport%20flash.display.BitmapData%3B%0Dimport%20flash.events.Event%3B%0Dimport%20flash.geom.Rectangle%3B%0D%0D%2F**%0D%20*%20Display%20the%20BitmapData%20like%20a%20LCD%20display.%0D%20*%0D%20*%20This%20is%20a%20class%20of%20%3Ca%20href%3D%22http%3A%2F%2Fblog.jactionscripters.com%2F2009%2F05%2F18%2Fstudy-recreating-lcd-panels-trinitron-like-matrices%2F%22%3E%0D%20*%20Jin%20Saburi's%20effect%3C%2Fa%3E.%0D%20*%0D%20*%20%40see%20http%3A%2F%2Fblog.jactionscripters.com%2F2009%2F05%2F18%2Fstudy-recreating-lcd-panels-trinitron-like-matrices%2F%0D%20*%2F%0Dclass%20LCDBitmap%20extends%20Bitmap%0D%7B%0D%09%2F**%0D%09%20*%20Create%20a%20new%20instance%20of%20the%20LCDBitmap.%0D%09%20*%0D%09%20*%20%40param%09bitmapData%09an%20instance%20of%20BitmapData%20you%20need%20to%20display.%0D%09%20*%20%40param%09tileSize%09size%20of%20tile%20displays%20RGB%20color.%0D%09%20*%20%40param%09tileMargin%09margin%20of%20each%20tiles%0D%09%20*%20%40param%09pixelSnapping%09same%20as%20Bitmap%20class.%0D%09%20*%20%40param%09smoothing%09same%20as%20Bitmap%20class.%0D%09%20*%2F%0D%09public%20function%20LCDBitmap(bitmapData%3ABitmapData%2C%20tileSize%3Auint%20%3D%203%2C%20tileMargin%3Auint%20%3D%201%2C%20pixelSnapping%3AString%20%3D%20'auto'%2C%20smoothing%3ABoolean%20%3D%20false)%0D%09%7B%0D%09%09_sourceBitmapData%20%3D%20bitmapData%3B%0D%09%09_lcdBitmapData%20%3D%20new%20BitmapData(bitmapData.width%20*%20((tileSize%20%2B%20tileMargin)%20*%203)%2C%20bitmapData.height%20*%20((tileSize%20%2B%20tileMargin)%20*%203)%2C%20true%2C%200x00000000)%3B%0D%09%09super(_lcdBitmapData%2C%20pixelSnapping%2C%20smoothing)%3B%0D%09%09trace(_lcdBitmapData.width%2C%20_lcdBitmapData.height)%3B%0D%09%09_tileSize%20%3D%20tileSize%3B%0D%09%09_tileMargin%20%3D%20tileMargin%3B%0D%09%09_tile%20%3D%20new%20Rectangle(0%2C%200%2C%20_tileSize%2C%20_tileSize)%3B%0D%09%09addEventListener(Event.ENTER_FRAME%2C%20renderHandler)%3B%0D%09%7D%0D%09%0D%09private%20var%20_sourceBitmapData%3ABitmapData%3B%0D%09private%20var%20_lcdBitmapData%3ABitmapData%3B%0D%09private%20var%20_tileSize%3Auint%3B%0D%09private%20var%20_tileMargin%3Auint%3B%0D%09private%20var%20_tile%3ARectangle%3B%0D%09%0D%09private%20function%20renderHandler(e%3AEvent)%3Avoid%0D%09%7B%0D%09%09var%20source%3ABitmapData%20%3D%20_sourceBitmapData%3B%0D%09%09var%20bitmap%3ABitmapData%20%3D%20_lcdBitmapData%3B%0D%09%09bitmap.lock()%3B%0D%09%09bitmap.fillRect(bitmap.rect%2C%200x00000000)%3B%0D%09%09var%20sw%3Auint%20%3D%20source.width%3B%0D%09%09var%20sh%3Auint%20%3D%20source.height%3B%0D%09%09var%20size%3Auint%20%3D%20_tileSize%3B%0D%09%09var%20margin%3Auint%20%3D%20_tileMargin%3B%0D%09%09var%20tsize%3Auint%20%3D%20(size%20%2B%20margin)%3B%0D%09%09var%20psize%3Auint%20%3D%20tsize%20*%203%3B%0D%09%09var%20tile%3ARectangle%20%3D%20_tile%3B%0D%09%09var%20px%3Auint%2C%20py%3Auint%3B%0D%09%09var%20c%3Auint%2C%20r%3Auint%2C%20g%3Auint%2C%20b%3Auint%3B%0D%09%09var%20x%3Auint%2C%20y%3Auint%3B%0D%09%09for%20(x%20%3D%200%3B%20x%20%3C%20sw%3B%20%2B%2Bx)%20%7B%0D%09%09%09for%20(y%20%3D%200%3B%20y%20%3C%20sh%3B%20%2B%2By)%20%7B%0D%09%09%09%09c%20%3D%20source.getPixel(x%2C%20y)%3B%0D%09%09%09%09r%20%3D%20(c%20%26%200xff0000)%20%7C%200xff000000%3B%0D%09%09%09%09g%20%3D%20(c%20%26%200x00ff00)%20%7C%200xff000000%3B%0D%09%09%09%09b%20%3D%20(c%20%26%200x0000ff)%20%7C%200xff000000%3B%0D%09%09%09%09px%20%3D%20psize%20*%20x%3B%0D%09%09%09%09py%20%3D%20psize%20*%20y%3B%0D%09%09%09%09tile.x%20%3D%20px%3B%0D%09%09%09%09tile.y%20%3D%20py%3B%0D%09%09%09%09bitmap.fillRect(tile%2C%20r)%3B%0D%09%09%09%09tile.x%20%3D%20px%20%2B%20tsize%3B%0D%09%09%09%09bitmap.fillRect(tile%2C%20g)%3B%0D%09%09%09%09tile.x%20%3D%20px%20%2B%20tsize%20*%202%3B%0D%09%09%09%09bitmap.fillRect(tile%2C%20b)%3B%0D%09%09%09%09tile.x%20%3D%20px%20%2B%20margin%3B%0D%09%09%09%09tile.y%20%3D%20py%20%2B%20tsize%3B%0D%09%09%09%09bitmap.fillRect(tile%2C%20b)%3B%0D%09%09%09%09tile.x%20%3D%20px%20%2B%20margin%20%2B%20tsize%3B%0D%09%09%09%09bitmap.fillRect(tile%2C%20r)%3B%0D%09%09%09%09tile.x%20%3D%20px%20%2B%20margin%20%2B%20tsize%20*%202%3B%0D%09%09%09%09bitmap.fillRect(tile%2C%20g)%3B%0D%09%09%09%09tile.x%20%3D%20px%20%2B%20margin%20*%202%3B%0D%09%09%09%09tile.y%20%3D%20py%20%2B%20tsize%20*%202%3B%0D%09%09%09%09bitmap.fillRect(tile%2C%20g)%3B%0D%09%09%09%09tile.x%20%3D%20px%20%2B%20margin%20*%202%20%2B%20tsize%3B%0D%09%09%09%09bitmap.fillRect(tile%2C%20b)%3B%0D%09%09%09%09tile.x%20%3D%20px%20%2B%20margin%20*%202%20%2B%20tsize%20*%202%3B%0D%09%09%09%09bitmap.fillRect(tile%2C%20r)%3B%0D%09%09%09%7D%0D%09%09%7D%0D%09%09bitmap.unlock()%3B%0D%09%7D%0D%7D
