花時計 papervision3d練習とか hacker_cobul.. forked:1favorite:15lines:156license : see code comments modified : 2010-02-08 18:37:10 Embed Tweet package {//papervision3d練習とか import flash.display.*; import flash.events.*; import flash.geom.*; import org.papervision3d.view.*; import org.papervision3d.objects.*; import org.papervision3d.objects.primitives.*; import org.papervision3d.cameras.*; import org.papervision3d.materials.*; import org.papervision3d.core.effects.view.*; import org.papervision3d.typography.*; import org.papervision3d.typography.fonts.*; import org.papervision3d.materials.special.*; import org.papervision3d.core.geom.*; import org.papervision3d.core.geom.renderables.Vertex3D; [SWF(width = "465", height = "465", backgroundColor = 0xffffff, frameRate = "60")] public class clock1 extends BasicView { private var rootNode : DisplayObject3D; private var myArray1:Array; private var myArray2:Array; private var myArray3:Array; private var rot:Number=0; private var letterMat : Letter3DMaterial; public function clock1() {Wonderfl.capture_delay(10); rootNode = new DisplayObject3D(); scene.addChild( rootNode ); myArray1=new Array(); myArray2=new Array(); myArray3=new Array(); for (var j:int = 0; j < 6; j++) { var bmpData:BitmapData = new BitmapData(80,300,true,0x00000000); var shapes:petal=new petal(j); bmpData.draw(shapes); var material: BitmapMaterial = new BitmapMaterial(bmpData); material.smooth = true; material.oneSide = false; var planeObj:DisplayObject3D = new Plane( material, 80, 300, 0, 0); planeObj.z=j*20; rootNode.addChild( planeObj ); myArray1.push(planeObj); } var letterStr:Array=["12","1","2","3","4","5","6","7","8","9","10","11"]; letterMat = new Letter3DMaterial(0xE3DA37,1); for (var q:uint = 0; q < 12; q++) { myArray2[q] = new Text3D(letterStr[q], new HelveticaBold(), letterMat); var rad=30*q; myArray2[q].scaleX=myArray2[q].scaleY=0.5; myArray2[q].x=150*Math.sin(rad*Math.PI/180); myArray2[q].y=150*Math.cos(rad*Math.PI/180); myArray2[q].z=-100; rootNode.addChild(myArray2[q]); } var arrheight2:Array=[60,120,150]; for (var qq:uint = 0; qq < 3; qq++) { var height2=arrheight2[qq]; var bmpData2:BitmapData = new BitmapData(10,height2,true,0x00000000); var shapes2:hands=new hands(height2); bmpData2.draw(shapes2); var material2: BitmapMaterial = new BitmapMaterial(bmpData2); var planeObj2:DisplayObject3D = new Plane( material2, 10, height2, 0, 0); planeObj2.z=-20; rootNode.addChild( planeObj2 ); myArray3.push(planeObj2); } for (var i:uint = 0; i < planeObj2.geometry.vertices.length;i++){ var v:Vertex3D = myArray3[0].geometry.vertices[i]; var v2:Vertex3D = myArray3[1].geometry.vertices[i]; var v3:Vertex3D =myArray3[2] .geometry.vertices[i]; v.y-=30; v2.y-=60; v3.y-=75; } camera.z = 0; camera.y = 0; camera.zoom = 0; //camera.focus = 10; stage.addEventListener(Event.ENTER_FRAME, loop); } private function loop( event:Event ):void { var dd:Date = new Date(); myArray3[0].rotationZ = dd.hours * -30-180; myArray3[1].rotationZ = dd.minutes * -6-180; myArray3[2].rotationZ = dd.seconds * -6-180; if(myArray1[1].rotationZ<30){myArray1[1].rotationZ+=1;} if(myArray1[2].rotationZ<60){myArray1[2].rotationZ+=1;} if(myArray1[3].rotationZ<90){myArray1[3].rotationZ+=1;} if(myArray1[4].rotationZ<120){myArray1[4].rotationZ+=1;} if(myArray1[5].rotationZ<150){myArray1[5].rotationZ+=1;} if(camera.z>-400){camera.z-=1;} if(camera.zoom<50){camera.zoom+=0.5} rot+=0.2; camera.y=200*Math.cos(rot*Math.PI/180); camera.x=400*Math.sin(rot*Math.PI/180); // 再レンダリング singleRender(); } } } import flash.display.Sprite;import flash.display.Shape; import flash.display.GradientType; import flash.geom.Matrix; class petal extends Sprite{ private var arr:Array=[ [0xFB5E79,0xFED78A,0xFF917A,0xFF917A,0xFED78A,0xFB5E79], [0xFF6975,0xFFB403,0xE3DA37,0xE3DA37,0xFFB403,0xFF6975], [0xFED78A,0xFB5E79,0xFF917A,0xFF917A,0xFB5E79,0xFED78A], [0xFFB403,0xFF6975,0xE3DA37,0xE3DA37,0xFF6975,0xFFB403], [0xFCC4AD,0xFB5E79,0xFED78A,0xFED78A,0xFB5E79,0xFCC4AD], [0xFFB403,0xE3DA37,0xFF6975,0xFF6975,0xE3DA37,0xFFB403] ] public function petal(arg1:Number){ var slctArr:Array=arr[arg1]; var _sp:Shape = new Shape(); var rot:Number = 2 * Math.PI * (90 / 360); var gbm:Matrix = new Matrix(); gbm.createGradientBox(40, 300, rot, 0, 0); _sp.graphics.beginGradientFill(GradientType.LINEAR, [slctArr[0],slctArr[1],slctArr[2],slctArr[3],slctArr[4],slctArr[5]], [1,1,1,1,1,1], [0, 60,127,128,220, 255], gbm); //_sp.graphics.drawCircle(40,20,20); _sp.graphics.moveTo(20,40); _sp.graphics.curveTo(20,0,40,0); _sp.graphics.curveTo(60,0,60,40); _sp.graphics.moveTo(20,40); _sp.graphics.lineTo(60,40); _sp.graphics.lineTo(50,120); _sp.graphics.lineTo(30,120); //_sp.graphics.drawCircle(40,140,10); _sp.graphics.moveTo(30,120); _sp.graphics.curveTo(30,140,40,140); _sp.graphics.curveTo(50,140,50,120); //_sp.graphics.drawCircle(40,160,10); _sp.graphics.moveTo(30,180); _sp.graphics.curveTo(30,160,40,160); _sp.graphics.curveTo(50,160,50,180); _sp.graphics.moveTo(30,180); _sp.graphics.lineTo(50,180); _sp.graphics.lineTo(60,260); _sp.graphics.lineTo(20,260); _sp.graphics.moveTo(20,260); _sp.graphics.curveTo(20,300,40,300); _sp.graphics.curveTo(60,300,60,260); //_sp.graphics.drawCircle(40,280,20); _sp.graphics.endFill(); addChild(_sp); } } class hands extends Sprite{ public function hands(arg1:Number){ var _sp:Shape = new Shape(); _sp.graphics.lineStyle(2,0xFF4F5A) _sp.graphics.moveTo(0,10); _sp.graphics.lineTo(5,0); _sp.graphics.lineTo(10,10); _sp.graphics.lineTo(0,10); _sp.graphics.lineTo(10,20); _sp.graphics.moveTo(10,10); _sp.graphics.lineTo(0,20); _sp.graphics.lineTo(10,20); _sp.graphics.lineTo(5,arg1); _sp.graphics.lineTo(0,20); addChild(_sp) } } Code Fullscreen Preview Fullscreen alumican_net.. matacat tkinjo osamX mita termat sw_lucchini hacker_yblow.. siouxcitizen.. uwi djankey a440hlz : 3Dbeautifl時計 bkzen : かっこかわいい soundkitchen.. : ふわふわしてて良い感じ。 clockmaker : Papervision3DPV3D花時計 3D PV3D Papervision3D beautifl 時計 rotationZ zoom material smooth draw scaleY scaleX Date oneSide Math.PI addEventListener seconds hours minutes Array Matrix Math.cos createGradientBox GradientType.LINEAR Math.sin sort new page view favorite forked pv90 forked from: 花時計 berthold forked:0 favorite:0lines:156 (diff:2)