// forked from northprint's forked from: Pixcel Bender Test -No.2 blendShader // forked from northprint's Pixcel Bender Test -No.2 blendShader // write as3 code here.. //Pixel Bender Test //たまちさんからのコメントで動作するようになりました!!すばらしい!! package { import flash.display.*; import flash.events.*; import flash.net.URLLoader; import flash.net.URLRequest; import flash.net.URLLoaderDataFormat; import flash.system.Security; import flash.filters.ShaderFilter; import flash.system.LoaderContext; [SWF(backgroundColor="#ffffff")] public class PixelBenderTest extends MovieClip{ private var _pbloader:URLLoader; private var _imgloader:Loader; private var _imgloader2:Loader; private var _fadeShader:Shader; private var _filter:ShaderFilter; private var _bmp1:Bitmap; private var _bmp2:Bitmap; private var _bmd1:BitmapData; private var _bmd2:BitmapData; private var _param:Number = 0; private var _container:MovieClip; private var _container2:MovieClip; public function PixelBenderTest(){ _container = new MovieClip(); _container2 = new MovieClip(); addChild(_container); addChild(_container2); Security.loadPolicyFile("http://narayama.heteml.jp/crossdomain.xml"); _pbloader = new URLLoader(); _pbloader.dataFormat = URLLoaderDataFormat.BINARY; _pbloader.addEventListener(Event.COMPLETE,PbLoadHandler); _pbloader.load(new URLRequest("http://narayama.heteml.jp/test/pixelbender/CrossFade_test2.pbj")); } private function PbLoadHandler(e:Event):void{ _imgloader = new Loader(); _imgloader.contentLoaderInfo.addEventListener(Event.COMPLETE,ImgLoadHandler); _imgloader.load(new URLRequest("http://narayama.heteml.jp/test/pixelbender/testimage.jpg"), new LoaderContext(true)); } private function ImgLoadHandler(e:Event):void{ var loaderInfo:LoaderInfo = LoaderInfo(e.currentTarget); var loader:Loader = loaderInfo.loader; _bmd1 = new BitmapData(loader.width, loader.height, true); _bmd1.draw(loader); _bmp1 = new Bitmap(_bmd1); _bmp1.x = (stage.stageWidth/2) - (loader.width/2); _bmp1.y = (stage.stageHeight/2) - (loader.height/2); _imgloader2 = new Loader(); _imgloader2.contentLoaderInfo.addEventListener(Event.COMPLETE,ImgLoadHandler2); _imgloader2.load(new URLRequest("http://narayama.heteml.jp/test/pixelbender/testimage2.jpg"), new LoaderContext(true)); } private function ImgLoadHandler2(e:Event):void{ var loaderInfo:LoaderInfo = LoaderInfo(e.currentTarget); var loader:Loader = loaderInfo.loader; _bmd2 = new BitmapData(loader.width, loader.height, true); _bmd2.draw(loader); _bmp2 = new Bitmap(_bmd2); _bmp2.x = (stage.stageWidth/2) - (loader.width/2); _bmp2.y = (stage.stageHeight/2) - (loader.height/2); _container.addChild(_bmp1); _container2.addChild(_bmp2); _fadeShader = new Shader(_pbloader.data); //イベントリスナー登録 addEventListener(Event.ENTER_FRAME,enterFrameHandler); } private function enterFrameHandler(e:Event):void{ _param++; if (_param > 10){ _param = 0; } _fadeShader.data.intencity.value = [_param * 0.1]; //一旦ブレンドモードをノーマルにする!!コレ重要! _container2.blendMode = BlendMode.NORMAL; _container2.blendShader = _fadeShader; } } } forked from: forked from: Pixel Bender Test -No.2 blendShader