Home > 1. 気ままにパブィッシュ > PV3D CylinderとFlex Calender

PV3D CylinderとFlex Calender

  

前回のつづきで、Papervision3DのCylinderにFlexのCalenderを巻いてみました。
もちろん、どちらでもDateChooserは機能します。使い勝手が悪そうですが^^
(クリックすると私の変な声が出ます)

PV3Dは何でも簡単に回ってしまいます…(笑


▼FlexBuilderコード

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
backgroundGradientColors="[#1f2225, #1f2225]" creationComplete="init()"
width="420" height="260" verticalScrollPolicy="off" >

<mx:Script>
<![CDATA[
import org.papervision3d.objects.primitives.Cylinder;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.materials.MovieMaterial;
import org.papervision3d.core.utils.InteractiveSceneManager;
import org.papervision3d.events.InteractiveScene3DEvent;
import mx.core.UIComponent;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.scenes.Scene3D;
import mx.events.CalendarLayoutChangeEvent;
import jp.artbiz.NumberVoice;

private var myScene:Scene3D;
private var myCamera:Camera3D;
private var myViewport:Viewport3D;
private var myRenderer:BasicRenderEngine;
private var cylinderForm:Cylinder;
private var sound:Sound;

private function init():void{
//UIコンポーネント作成
var myNestingComponent:UIComponent = new UIComponent();
addChild(myNestingComponent);
myViewport = new Viewport3D(600, 230, false, true);
myNestingComponent.addChild(myViewport);
setup();

this.addEventListener(Event.ENTER_FRAME, renderLoop);//イベントリスナー登録
dc.addEventListener(CalendarLayoutChangeEvent.CHANGE, playVoice);

}

private function playVoice(eventObj:CalendarLayoutChangeEvent):void{
//音声再生
var num:String = eventObj.currentTarget.selectedDate.getDate();
var ss:NumberVoice = new NumberVoice();
ss.selectVoice(num);

}

private function setup():void{

myScene = new Scene3D();//シーン生成
myRenderer = new BasicRenderEngine();//レンダリング専用クラス
myCamera = new Camera3D;//カメラオブジェクト生成
myCamera.zoom = 5;//カメラズーム

var materialForm:MovieMaterial = new MovieMaterial(myCanvas,false,true,true);

materialForm.doubleSided = true;
materialForm.interactive = true;
materialForm.smooth = true;

//シリンダオブジェクト生成
cylinderForm = new Cylinder(materialForm, 150, 400, 24, 7);
myScene.addChild(cylinderForm, "cylinderForm");

}

//回転してレンダリング
private function renderLoop(myEvent:Event):void{
cylinderForm.rotationY++;
myRenderer.renderScene(myScene, myCamera, myViewport);
}

//カレンダーイベント
private function useDate(eventObj:CalendarLayoutChangeEvent):void {

if (eventObj.currentTarget.selectedDate == null) {
return
}
lb.text=eventObj.currentTarget.selectedDate.getFullYear()+"/"
+(int(eventObj.currentTarget.selectedDate.getMonth())+1).toString()+"/"
+eventObj.currentTarget.selectedDate.getDate();
}

]]>
</mx:Script>
<mx:Canvas id="myCanvas" backgroundAlpha="0.0" top="0" left="0" height="205">
<mx:DateChooser id="dc" x="0" bottom="0" change="useDate(event)"/>
</mx:Canvas>
<mx:Label x="259" y="229" fontSize="14" color="#ffffff" id="lb"/>
</mx:Application>

※「”」は「"」に変えてください。

Comments:5

そるじー 08-01-26 (土) 21:17

Add Your Comment

ZONO 08-01-27 (日) 4:42

こんにちはー。
仕事中ですか?!

そるじー 08-01-27 (日) 20:35

あら!コメントの内容が消えてる!!!!
携帯の電話帳が消えてしまって、連絡先が分からなくなってしまいました。
メールくださいm(__)m

judy 08-11-11 (火) 4:24

Thanks for your project. I like this site. KEEP IT UP..

juwen 10-03-18 (木) 14:48

good!thank you for your exp

Comment Form
Remember personal info

Trackback+Pingback:0

TrackBack URL for this entry
http://artliv.jp/WP1/wp-trackback.php?p=61
Listed below are links to weblogs that reference
PV3D CylinderとFlex Calender from 気ままにパブリッシュ

Home > 1. 気ままにパブィッシュ > PV3D CylinderとFlex Calender

Search
Google

    
Feeds

Page Top