Flash10 Pendant 1月 06, 2009 之前是使用PV3D來製作, 這次就直接用Flash10內建的3D來使用即可。原理是一模一樣的, 其實我偷偷包了二層。一層管rotationX,一層管rotationZ, 就可以有這樣的效果了。原始碼 package { import flash.display.Bitmap; import flash.display.Sprite; import flash.events.*; import flash.filters.ColorMatrixFilter; import flash.geom.ColorTransform; [SWF(width="950", height="500", frameRate="47", backgroundColor="#eeeeee", pageTitle="PV3D milkmidi")] public class PendantDemo extends Sprite { [Embed(source="assets/milkmidiDemo.jpg")] private var Texture:Class; private var offsetX :Number = 0.1; private var clickForce :Number = 1.6; private var bounceForce :Number; private var bounceSpeedAcc :Number = 0; private var rotationYSpeed :Number; private var bounceSpeed :Number; private var bounceX :Number = 0; private var bounceAcc :Number = 0; private var rotationYAcc :Number = 0; private var friction :Number = 0.995; private var rootNode :Sprite = new Sprite(); private var innerSprite :Sprite = new Sprite(); public function PendantDemo() { bounceX = 0; friction = 0.995; clickForce = 1.6; bounceAcc = 0; bounceSpeedAcc = 0; rotationYAcc = 0; bounceSpeed = 0.1 + Math.random() * 0.05; bounceForce = 0; rotationYSpeed = 0; init3DObject(); this.addEventListener(Event.ENTER_FRAME, onEventEnterFrame); } private function init3DObject():void { var bitmap:Bitmap = new Texture() as Bitmap; bitmap.height = 420; bitmap.x = - 160; innerSprite.addChild(bitmap); rootNode.addChild(innerSprite); rootNode.buttonMode = true; rootNode.x = stage.stageWidth / 2; rootNode.y = 10; rootNode.z = 300; rootNode.addEventListener(MouseEvent.MOUSE_DOWN, on3DPress); this.addChild(rootNode); } private function on3DPress(e:MouseEvent):void { if (bounceForce < 60) { bounceAcc = 15; } if (rotationYSpeed < 8) { rotationYAcc = 4; } } protected function onEventEnterFrame(e:Event):void { var _num:Number; bounceForce += bounceAcc / 10; bounceForce *= friction; rotationYSpeed += rotationYAcc / 10; rotationYSpeed *= friction; if (bounceAcc > 0){ bounceAcc--; } if (rotationYAcc > 0) { rotationYAcc -= 0.5; }else { rotationYAcc = 0; } bounceX += bounceSpeed; rootNode.rotationX = Math.sin(bounceX) * bounceForce; rootNode.rotationZ = Math.cos(bounceX) * (bounceForce / 10); innerSprite.rotationY += rotationYSpeed; _num = (1 - (rootNode.rotationX + 80) / 160) * 2; rootNode.transform.colorTransform = new ColorTransform(_num, _num, _num, 1); } } } 分享 取得連結 Facebook X Pinterest 以電子郵件傳送 其他應用程式 標籤 Flash10 分享 取得連結 Facebook X Pinterest 以電子郵件傳送 其他應用程式 留言 JIE = 介寫道… 這效果用GOOGLE的瀏覽器看不到說 milkmidi寫道… 好的,謝謝你我來裝看看Google的Browser好了
留言
我來裝看看Google的Browser好了