# [pv3d]flash翻牌效果

- URL: https://justfly.idv.tw/pv3dflash%e7%bf%bb%e7%89%8c%e6%95%88%e6%9e%9c/
- 日期: 2010-01-13
- 分類: WEB&amp;RIA
- 標籤: 3D, actionscript, flash, pv3D, RIA, Tweener

雖然是一個老掉牙的效果

真的要自己做還是要好好想一下

所以也好好的做一下筆記…

https://justfly.idv.tw/wp-content/uploads/2010/01/2010-01-12_1956.png

如圖跟標題…就是向撲克牌一樣的翻牌效果

設計師也只是要求翻過來後加上陰影跟MOUSEOVER的光影

全部都用Tweener的濾鏡解決!!

我也懶的再提供其他動態的IDEA..心情無力到像是AS工人了@@

我好懷念在橘子的熱血喔~

年輕真好!!!

廢話太多 = =

回到原題~要四張牌用四個BasicView的原因是:

如果只用一個BasicView放四張牌,

只有CAMERA前的牌的翻轉角度是正常的,

其他的會因為視角的差異看起來很怪,

重點是如果翻轉時跟其他牌重疊到,

會因為PV3D運算的問題!?開始出現類似癲間的顫抖….

所以用四個BasicView架四台CAMERA就正常了

[線上WEB SITE](http://craze-outlet.com/)

但是…高手發明的東西應該有更聰明的解決方式..我覺得啦~

向是把CAMERA的z軸拉遠再把撲克牌放大!!?

```
package{
	
	import flash.display.*;
	import flash.events.*;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.utils.Timer;
	import flash.geom.Matrix;
	import flash.net.navigateToURL;
	import flash.filters.*;
	import flash.utils.getDefinitionByName; //引入getDefinitionByName方法;
	
	import org.papervision3d.objects.primitives.*;
	import org.papervision3d.materials.*;
	import org.papervision3d.events.*
	import org.papervision3d.objects.DisplayObject3D;
	import org.papervision3d.view.BasicView;
	import org.papervision3d.view.layer.ViewportLayer;
	import org.papervision3d.materials.BitmapAssetMaterial;
	import org.papervision3d.view.layer.util.ViewportLayerSortMode;
	import org.papervision3d.lights.PointLight3D;
	import org.papervision3d.materials.BitmapMaterial;
	import org.papervision3d.materials.shadematerials.FlatShadeMaterial;
	import org.papervision3d.objects.primitives.Sphere;
	import org.papervision3d.render.QuadrantRenderEngine;


	import caurina.transitions.Tweener;
	import caurina.transitions.properties.FilterShortcuts;
	import caurina.transitions.properties.ColorShortcuts;

	public class Main extends Sprite {
		var mod:ModelLocator = ModelLocator.getInstance();
		var banner_URL:String;
		var bannerLoader:URLLoader = new URLLoader;
				
		public function Main() {	
			addEventListener(Event.ADDED_TO_STAGE,init);
		}
		
		private function init(e:Event) {
			mod.rooturl = this.loaderInfo.url.substring(0, this.loaderInfo.url.indexOf("/flash") );
			//mod.rooturl = "C:/Users/justfly/Documents/My Dropbox/ES/CRAZE OUTLET";
			FilterShortcuts.init();
			ColorShortcuts.init();
			banner_URL = mod.rooturl + "/xml/banner.xml";
			bannerLoader.load(new URLRequest(banner_URL));
			bannerLoader.addEventListener(Event.COMPLETE, bannerLoadComplete);
			
			init3DEngine();
		}
		
		private function init3DEngine():void {
			for (var i = 1; i
```
