-
1. Re: click event dissappeared when filter applied
Hakan KIRIK Jan 6, 2011 4:18 AM (in response to polatkanfatih)here is a sample for you:
check it and see, everything works as expected...
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.filters.DropShadowFilter;var sprite:Sprite=new Sprite();
sprite.graphics.beginFill(0xcccccc);
sprite.graphics.drawCircle(0,0,200);
sprite.graphics.endFill();
sprite.filters=[new DropShadowFilter()];addChild(sprite);
sprite.addEventListener(MouseEvent.CLICK,fKlik);
function fKlik(evt:MouseEvent)
{
trace("ok");
}var sprite2:Sprite=new Sprite();
sprite2.graphics.beginFill(0);
sprite2.graphics.drawRect(30,30,30,30);
sprite2.graphics.endFill();addChild(sprite2);
sprite.mask=sprite2; -
2. Re: click event dissappeared when filter applied
polatkanfatih Jan 6, 2011 4:29 AM (in response to Hakan KIRIK)i tried that in a blank document, it works, no problem. However, some problem appeared in my code. i animate my maskClip, can it be because of that. below is my code...
package { import flash.display.MovieClip; import com.greensock.plugins.TweenPlugin; import com.greensock.plugins.TransformMatrixPlugin; import flash.events.MouseEvent; import com.greensock.TweenLite; import com.greensock.easing.Strong; import com.greensock.TweenMax; import flash.display.Loader; import flash.events.Event; import flash.events.IOErrorEvent; import flash.net.URLRequest; import flash.display.Shape; import flash.display.Bitmap; import flash.display.Sprite; import flash.text.TextField; import flash.utils.clearInterval; import flash.utils.setInterval; import flash.net.navigateToURL; import flash.utils.setTimeout; import flash.utils.clearTimeout; import flash.filters.DropShadowFilter; import com.greensock.plugins.DropShadowFilterPlugin; public class PanelBase extends MovieClip { private const MIN_WIDTH :Number = 100; private const MIN_HEIGHT :Number = 100; private const IMG_WIDTH :Number = 263; private const IMG_HEIGHT :Number = 229; public var closeX :Number; public var closeY :Number; public var initW :Number; public var initH :Number; public var openX :Number; public var openY :Number; private var openW :Number = 480; private var openH :Number = 194; public var title :String = ''; public var link :String = ''; public var target :String = '_blank'; public var image :Bitmap; public var id :int; public var rat :Number; private var timeout :Number; private var interval :Number; private var count :int = 0; private var isLoaded :Boolean = false; private var isOpen :Boolean = false; private var ratio :Number; private var loader :Loader = new Loader(); private var mask_mc :Shape = new Shape(); private var window :Shape = new Shape(); private var bottom :Bottom = new Bottom(); private var imageContainer :Sprite = new Sprite(); private var world :World = new World(); public function PanelBase() { // constructor code initW = width; initH = height; buttonMode = true; mouseChildren = false; TweenPlugin.activate([TransformMatrixPlugin]); //filters = [new DropShadowFilter()]; addEventListener(MouseEvent.CLICK,onClick,false,0,true); addChild(imageContainer); drawMask(); addChild(window); addBottom(); } private function addBottom():void{ bottom.visible = false; addChild(bottom); } private function drawMask():void{ addChild(mask_mc); with(mask_mc.graphics){ beginFill(0x000000); drawRect(0,0,initW,initW); endFill(); } mask = mask_mc; } private function drawWindow(w:Number,h:Number):void{ with(window.graphics){ clear(); lineStyle(15,0xFFFFFF); moveTo(0,0); lineTo(w,0); lineTo(w,h); lineTo(0,h); lineTo(0,0); } } private function drawSmallWindow(w:Number,h:Number):void{ with(window.graphics){ clear(); lineStyle(5,0xFFFFFF); moveTo(0,0); lineTo(w,0); lineTo(w,h); lineTo(0,h); lineTo(0,0); } } public function loadImage(path:String):void{ loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onImageComplete); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,onImageError); loader.load(new URLRequest(path)); } private function onImageComplete(evt:Event):void{ loader.contentLoaderInfo.removeEventListener(Event.COMPLETE,onImageComplete); loader.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR,onImageError); image = loader.content as Bitmap; ratio = image.width / image.height; imageContainer.addChild(image); isLoaded = true; if(isOpen){ resizeImage(IMG_WIDTH,openH); }else{ resizeImage(initW,initH); } openImage(); } private function onImageError(evt:IOErrorEvent):void{ } private function onClick(evt:MouseEvent):void{ if(!isOpen){ open(); }else{ if(link.length > 0){ navigateToURL(new URLRequest(link),target); } } } public function open():void{ isOpen = true; Main(parent).closeAll(this); if(isLoaded){ resizeImage(IMG_WIDTH,openH); openImage(); } var nx:Number = openX + 50; bottom.visible = false; //TweenMax.to(this,.5,{x:openX,y:openY,ease:Strong.easeOut}); TweenMax.to(this,.5,{x:openX,y:10,ease:Strong.easeOut}); //TweenMax.to(mask_mc,.5,{width:20,height:20,ease:Strong.easeOut}); TweenMax.to(mask_mc,.5,{width:openW,height:openH,ease:Strong.easeOut}); //TweenMax.to(mask_mc,.5,{delay:.6,width:openW,ease:Strong.easeOut}); //TweenMax.to(this,1,{delay:.6,x:openX,ease:Strong.easeOut,onComplete:onOpenComplete}); drawWindow(openW,openH); setChildIndex(window,numChildren - 1); onOpenComplete(); } private function openImage():void{ //imageContainer.x = -150; //TweenMax.to(imageContainer,1,{x:0,ease:Strong.easeOut}); } private function onOpenComplete():void{ bottom.visible = true; bottom.bg.visible = true; bottom.txt.visible = true; bottom.txt.text = ''; bottom.x = openW - 30; bottom.y = openH - 30; setChildIndex(bottom,numChildren - 1); timeout = setTimeout(Main(parent).openWorld,500); //openText(); bottom.txt.text = title; //bottom.gotoAndPlay(2); } private function openText():void{ interval = setInterval(setText,20); } private function setText():void{ count++; if(count != title.length + 1){ bottom.txt.text = title.substr(0,count); }else{ clearInterval(interval); count = 0; } } public function close():void{ clearInterval(interval); clearTimeout(timeout); isOpen = false; if(isLoaded){ resizeImage(initW,initH); } bottom.visible = false; TweenLite.to(this,.5,{x:closeX,y:closeY,ease:Strong.easeOut}); TweenMax.to(mask_mc,.5,{width:initW,height:initH,ease:Strong.easeOut,onComplete:onCloseComplete}); drawSmallWindow(initW,initH); setChildIndex(window,numChildren - 1); } private function onCloseComplete():void{ bottom.visible = true; bottom.bg.visible = false; bottom.txt.visible = false; bottom.x = initW - 30; bottom.y = initH - 29; setChildIndex(bottom,numChildren - 1); } public function resizeImage(w:Number,h:Number):void{ image.width = w; image.height = w / ratio; if(image.height < h){ image.height = h; image.width = h * ratio; } image.x = w * .5 - image.width * .5; image.y = h * .5 - image.height * .5; } } } -
3. Re: click event dissappeared when filter applied
Hakan KIRIK Jan 6, 2011 5:08 AM (in response to polatkanfatih)maskClip? Do you mean mask_mc ?
i animated my mask also:
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.filters.DropShadowFilter;
import flash.events.Event;var sprite:Sprite=new Sprite();
sprite.graphics.beginFill(0xcccccc);
sprite.graphics.drawCircle(0,0,200);
sprite.graphics.endFill();
sprite.filters=[new DropShadowFilter()];addChild(sprite);
sprite.addEventListener(MouseEvent.CLICK,fKlik);
function fKlik(evt:MouseEvent)
{
trace("ok");
}var sprite2:Shape=new Shape();
sprite2.graphics.beginFill(0);
sprite2.graphics.drawRect(30,30,30,30);
sprite2.graphics.endFill();addChild(sprite2);
sprite.mask=sprite2;sprite2.addEventListener(Event.ENTER_FRAME,fEnter);
function fEnter(evt:Event)
{
sprite2.x+=0.5;
} -
4. Re: click event dissappeared when filter applied
polatkanfatih Jan 6, 2011 6:52 AM (in response to Hakan KIRIK)i handled it by another way, thanks for your interest////

