= max) state = 0; stack.selectedIndex = state; //if (state == 2) attach(); } private function prev():void { state-=1; if (state < 0) state = max-1; stack.selectedIndex = state; //if (state == 2) attach(); } private var offsetU : Number = 0; private var offsetV : Number = 0; private var easeX : Number = 0; private var easeY : Number = 0; private function loop(e : Event) : void { offsetU = getTimer() * 0.0001; offsetV = getTimer() * 0.0002; easeX += (stage.mouseX - easeX) * .1; easeY += (stage.mouseY - easeY) * .1; shader.data.center.value = [easeX,easeY]; shader.data.offset.value = [offsetU,offsetV] stack.filters = [filter]; } private var shader:Shader; private var filter:ShaderFilter; private function complete():void { //Pass the loaded filter to the Shader as a ByteArray shader = new Shader(new CustomFilter() as ByteArray); if (0) { shader.data.size.value = [20.0]; } else if (1) { //@ install filter(s) shader.data.imgSize.value = [512,512]; shader.data.center.value = [200.0,200.0]; shader.data.offset.value = [0,0]; } filter = new ShaderFilter(shader); //add the filter to the image stack.filters = [filter]; stage.addEventListener(Event.ENTER_FRAME, loop); } ]]>