Flash10で放射状ブラーをかけ回転させるとおかしくなる?
さきほど紹介した放射状ブラーですが、
画像とフィルターのrotationを合わせるといいかもと思い、
やってみたのですが・・・。
上手く動作しませんでした。。。
結果の図はこんな感じ・・・
画像が荒れてしまっています。
回転させることはできないのかな?
他のPixelBlenderで作ったFilterもそうなるのだろうか?
今度、試すべきですね。
一応、プログラムを載せておきます。
原因が分かる方、教えてください。お願いします。
package { import flash.display.Bitmap; import flash.display.Shader; import flash.display.Sprite; import flash.events.Event; import flash.filters.ShaderFilter; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; [SWF(width=800, height=600, backgroundColor=0xAADDFF)] public class Main03 extends Sprite { [Embed(source="images/yama.jpg")] private var P1:Class; private var image:Bitmap = new P1(); private var noFilterImage:Bitmap = new P1(); private const PBJ_FILE_URL:String = "datas/RadialBlur.pbj"; private var shader:Shader; private var shaderFilter:ShaderFilter; private var filterRotation:int = 0; private var filterSprite:Sprite = new Sprite(); public function Main03() { var scale:Number = 300/image.width; image.scaleX = scale; image.scaleY = scale; image.x = -image.width/2; image.y = -image.height/2; filterSprite.x = 450 + image.width/2; filterSprite.y = 100 + image.height/2; filterSprite.addChild(image); addChild(filterSprite); noFilterImage.x = 50; noFilterImage.y = 100; noFilterImage.scaleX = scale; noFilterImage.scaleY = scale; addChild(noFilterImage); var loader:URLLoader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.BINARY; loader.addEventListener(Event.COMPLETE, onLoadPBJFile); loader.load(new URLRequest(PBJ_FILE_URL)); } private function onLoadPBJFile(event:Event):void { shader = new Shader(event.currentTarget.data); shaderFilter = new ShaderFilter(shader); shader.data["center"].value[0] = image.width/2; shader.data["center"].value[1] = image.height/2; shader.data["amount"].value[0] = 50; shader.data["rotation"].value[0] = filterRotation; image.filters = [shaderFilter]; addEventListener(Event.ENTER_FRAME, onEnterFrame); } private function onEnterFrame(event:Event):void { filterRotation++; filterSprite.rotation = filterRotation; shader.data["rotation"].value[0] = filterRotation; image.filters = [shaderFilter]; } } }