Flex4.6 번개와 같은 젤리 탄창 효과류

2838 단어 flex4탄창 효과
신뢰7의 탄창 효과가 매우 멋있다고 느꼈지만 인터넷을 샅샅이 뒤졌지만 유사한 원본 코드를 발견하지 못해 직접 써야만 했다. 코드는 어렵지 않았다. 단지 두 가지 방법, 즉 팝업창과 창을 제거하는 것뿐이었다. 그러나 돌이켜 생각해 보니 좋은 공간 상상력이 없어서 정말 실현하기 어려웠다. 아래에 코드를 붙였다.
/**
		 *     ,    
		 * @param control     
		 * @param parent   
		 * @param modal
		 * @param backfunction     
		 *
		 */
		public static function show(control:IFlexDisplayObject, parent:DisplayObject=null, modal:Boolean=true, backfunction:Function=null):void
		{
			if(!parent)
				parent=Sprite(FlexGlobals.topLevelApplication);
			var rotate3D:Rotate3D=new Rotate3D();
			rotate3D.target=control;
			rotate3D.duration=180;
			rotate3D.autoCenterTransform=true;
			rotate3D.projectionX=(control.width);
			rotate3D.projectionY=(control.height);
			rotate3D.autoCenterProjection=false;
			rotate3D.angleXFrom=-5;
			rotate3D.angleXTo=0;
			rotate3D.angleYFrom=5;
			rotate3D.angleYTo=0;
			rotate3D.addEventListener(EffectEvent.EFFECT_END, function(e:EffectEvent):void
			{
				move3d.play();
			});

			var fade:Fade=new Fade();
			fade.target=control;
			fade.duration=400;
			fade.repeatCount=1;
			fade.alphaFrom=0;
			fade.alphaTo=1;

			var move3d:Move3D=new Move3D();
			move3d.target=control;
			move3d.duration=100;
			move3d.repeatBehavior="reverse";
			move3d.xBy=-2;
			move3d.zBy=-2;
			move3d.repeatCount=2;
			move3d.addEventListener(EffectEvent.EFFECT_END, function(e:EffectEvent):void
			{
				if (backfunction != null)
				{
					backfunction();
				}
			});
			PopUpManager.addPopUp(control, parent, modal);
			PopUpManager.centerPopUp(control);
			rotate3D.play();
			fade.play();
		}

		/**
		 *     
		 * @param control   
		 * @param backfunction     
		 *
		 */
		public static function remove(control:IFlexDisplayObject, backfunction:Function=null):void
		{
			var rotate3D:Rotate3D=new Rotate3D();
			rotate3D.target=control;
			rotate3D.duration=400;
			rotate3D.autoCenterTransform=true;
			rotate3D.projectionX=0;
			rotate3D.projectionY=0;
			rotate3D.autoCenterProjection=false;
			rotate3D.angleXFrom=0;
			rotate3D.angleXTo=5;
			rotate3D.angleYFrom=0;
			rotate3D.angleYTo=-5;

			rotate3D.addEventListener(EffectEvent.EFFECT_END, function(e:EffectEvent):void
			{
				PopUpManager.removePopUp(control);
				if (backfunction != null)
				{
					backfunction();
				}
			});

			var fade:Fade=new Fade();
			fade.target=control;
			fade.duration=250;
			fade.repeatCount=1;
			fade.alphaFrom=1;
			fade.alphaTo=0;

			var move3d:Move3D=new Move3D();
			move3d.target=control;
			move3d.duration=400;
			move3d.xBy=50;
			move3d.zBy=50;
			move3d.repeatCount=1;

			rotate3D.play();
			move3d.play();
			fade.play();
		}

코드 원리는 말하지 않겠습니다. 여러분 스스로 알아봅시다. 만약 효과가 뚜렷하지 않다고 생각되면 안에 있는 일부 파라미터를 스스로 설정할 수 있습니다. 운행하기에 매우 멋지지 않습니까?전재할 필요가 있으면 출처를 밝혀 주십시오. 감사합니다.http://my.csdn.net/neil89

좋은 웹페이지 즐겨찾기