メリークリスマス!

メリークリスマスってことでせっかくなので季節感がでるような簡単なものを作ってみました。
こんな感じ。
http://moeten.info/maidcafe/

左にあるクリスマスのバナーをクリックしてね。

FlashをHTMLに被せるのは「overLayFlash.js」ってライブラリが便利です。
雪は「SnowStorm」ってクラスを使用してます。

snow = new SnowStorm( 200,16,400);
scene.addChild(snow);

あとはenterFrameやtimerで描画を更新すればOK

snow.update();
renderer.renderScene(scene , camera , viewport );

参考ページ

メリークリスマスでっす。
みなさんにいいことがありますように(^−^)
ソースはこちら

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="absolute"
    width="100%" height="100%"
    frameRate="16"
    backgroundAlpha="0.5"
    backgroundColor="0x000000"
    backgroundGradientAlphas="[0.8, 0]"
    backgroundGradientColors="[#999999, #000000]"
    mouseDown="ExternalInterface.call('hideFlash')"
    creationCompleteEffect="myShow"
    hideEffect="myHide"
    creationComplete="init()"
    >
<mx:Script>
<![CDATA[
import net.pluginmedia.pv3d.SnowStorm;
import org.papervision3d.materials.BitmapMaterial;
import org.papervision3d.objects.primitives.Cube;
private function init():void{
    init3D();
}
/* **********************************
            PV3D
********************************** */
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.objects.DisplayObject3D;
import org.papervision3d.materials.BitmapFileMaterial;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.objects.parsers.DAE;
private var scene    : Scene3D;
private var viewport : Viewport3D;
private var renderer : BasicRenderEngine;
private var camera   : Camera3D;
private var cameraTarget : DisplayObject3D;
//初期化
private function init3D():void{
    setupScene();
    setupCamera();
    setupCube();
    setupListeners();
}
//シーンの作成
private function setupScene():void{
    viewport = new Viewport3D( myUI.width , 800 ,false,false,false,false);
    myUI.addChildAt(viewport , 0);
    renderer = new BasicRenderEngine();
    scene    = new Scene3D();
}
//カメラ設定
private function setupCamera():void{
    cameraTarget = new DisplayObject3D();
    camera = new Camera3D();
    camera.z = - 300;
    camera.y = 100;
}
//イベントリスナー設定
private function setupListeners():void{
    this.addEventListener(Event.ENTER_FRAME , onRenderTick );
}
//レンダリング+マウス操作
protected function onRenderTick(e:Event):void {
    snow.update();
    renderer.renderScene(scene , camera , viewport );
}
//リサイズイベント
private function onResize(e : Event) : void {
}
import caurina.transitions.Tweener;
private var cube:Cube;
[Embed(source='10.jpg')]private var img1:Class;
private function setupCube():void{
    snow = new SnowStorm( 200,16,400);
    scene.addChild(snow);
    var bitmat:BitmapMaterial = new BitmapMaterial((new img1 as Bitmap).bitmapData, true);
    bitmat.interactive = true;
    var matlist:MaterialsList = new MaterialsList( {all:bitmat});
    cube = new Cube( matlist , 100 , 100 , 120 );
    cube.rotationY = -30 ;
    cube .y = 600;
    cube.alpha = 0;
    cube.scale = 0.1;
    Tweener.addTween( cube , {
                        scale:1,
                        delay:2,
                        y:0,
                        alpha:1,
                        time:1,
                        transition:"easeOutBounce",
                        onComplete:onComp
                    });
    scene.addChild(cube);
}
private var snow:SnowStorm;
private function onComp():void{
    Tweener.addTween( cube , {
                        rotationY:210,
                        time:2,
                        onComplete:onComp2
                    });
}
private function onComp2():void{
    Tweener.addTween( cube , {
                    rotationY:0,
                    time:1
                });
    Tweener.addTween( camera , {
                    delay:1,
                    y:0,
                    z:-120,
                    time:1,
                    onComplete:function():void{
                        myImage.visible = true;
                        myBlur.play([myUI]);
                    }
                });
}
]]>
</mx:Script>
<!--#############  #############-->
<mx:Sequence id="myShow">
    <mx:Fade alphaFrom="0" alphaTo="1" duration="1000"/>
</mx:Sequence>
<mx:Sequence id="myShow2">
    <mx:Fade alphaFrom="0" alphaTo="1"/>
</mx:Sequence>
<mx:Sequence id="myHide">
    <mx:Fade alphaFrom="1" alphaTo="0" duration="1000"/>
</mx:Sequence>
<mx:Blur id="myBlur" blurXFrom="20" blurXTo="0" blurYFrom="20" blurYTo="0" duration="700"/>
<!--#############  #############-->
<mx:UIComponent id="myUI" width="100%" height="800"/>
<mx:Image source="@Embed('ribon.png')" id="myImage" showEffect="myShow2" visible="false" alpha="0"/>
</mx:Application>