Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   [Papervision] PaperVision3D работа с мышью, Papervision3D (http://www.flasher.ru/forum/showthread.php?t=193010)

areostar 22.01.2013 18:25

PaperVision3D работа с мышью, Papervision3D
 
Начал делать игрушку на Papervision3D:

Код AS3:

package 
{       
    import flash.events.*;
        import flash.display.Sprite;
        import flash.net.URLRequest;
        import flash.net.URLLoader;
        import flash.xml.*;
 
        import com.greensock.*;
        import com.greensock.easing.*;
        import com.greensock.plugins.*;
 
        import org.papervision3d.cameras.Camera3D;
        import org.papervision3d.render.BasicRenderEngine;
        import org.papervision3d.events.InteractiveScene3DEvent;
        import org.papervision3d.scenes.Scene3D;
        import org.papervision3d.view.Viewport3D;
        import org.papervision3d.materials.MovieMaterial;
        import org.papervision3d.materials.utils.MaterialsList;
        import org.papervision3d.objects.primitives.Cube;
        import org.papervision3d.materials.BitmapFileMaterial;
    import org.papervision3d.core.effects.view.ReflectionView;
 
 
        public class cardGames extends ReflectionView
        {
                private var cardsArray:Array = new Array();
                private var _back:back = new back();
                private var _material:BitmapFileMaterial;
                private var b_material:MovieMaterial;
 
                private var myLoader:URLLoader;
                private var myXML:XML;
 
                protected var treeMatList:MaterialsList;
        private var _cube:Cube;
 
                private var cubesArray:Array = new Array();
                private var current_cubeIndex:int = -1;
 
                //Variebles for 3D//////////////////////////////////////////////////////////////////////////////////////////////
                /*public var viewport:Viewport3D = new Viewport3D();
                public var scene:Scene3D = new Scene3D();
                public var camera:Camera3D = new Camera3D();
                public var renderer:BasicRenderEngine = new BasicRenderEngine();*/

                ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
                public function cardGames(viewportWidth:Number = 800, viewportHeight:Number = 600, scaleToStage:Boolean=true, interactive:Boolean=true, cameraType:String="CAMERA3D")
                {
                        super(viewportWidth, viewportHeight, scaleToStage, interactive, cameraType);
                        this.addEventListener(Event.ADDED_TO_STAGE, addToStageFunction);
                }
 
        private function addToStageFunction(e:Event):void
                {
                        this.removeEventListener(Event.ADDED_TO_STAGE, addToStageFunction);
                        readXML();
                }
 
                private function readXML()
                {
                        myXML = new XML();
                        var XML_URL:String = "deckCards.xml?"+ Math.random()
            var myXMLURL:URLRequest = new URLRequest(XML_URL);   
            myLoader = new URLLoader(myXMLURL);
            myLoader.addEventListener("complete", xmlLoaded);
 
                }
 
                private function xmlLoaded(event:Event):void
        {
                        myXML = XML(myLoader.data);
                        var listXML = myXML.children();
 
                        for(var i:int = 0; i < 54; i++ )
                        {
                                cardsArray.push(listXML[i]);
                        }
 
                        buildDesk();
                }
 
                private function buildDesk()
                {
                        var startX:Number = -500;
                        var startY:Number = 650;
                        for(var i:int = 0; i < 7; i++)
                        {
                                for(var j:int = 0; j < 7; j++)
                            {
                                        treeMatList = new MaterialsList();
 
                                    _material = new BitmapFileMaterial(cardsArray[i * 7 + j]);
                                b_material = new MovieMaterial(new back());
 
                                _material.smooth = true;
                                b_material.smooth = true;
 
                    treeMatList.addMaterial( _material, "front" );
                    treeMatList.addMaterial( b_material, "back" );
 
                    _cube = new Cube(treeMatList, 141.525, 0, 208, 6, 6, 6);
 
                                        _cube.name = (i * 7 + j).toString();
                                        _cube.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, planeClickedHandler, false, 0, true);
                                _cube.x = startX; _cube.y = startY; startX += 185;
                                        scene.addChild(_cube); cubesArray.push(_cube);
                                }
                                startX = -500; startY -= 215;
                        }
 
                    addChild(viewport);
                        renderer.renderScene(scene, camera, viewport);
                        addEventListener(Event.ENTER_FRAME, enterFrame);
                }
 
                private function planeClickedHandler(e:InteractiveScene3DEvent):void
                {
                        current_cubeIndex = e.currentTarget.name;
                        trace("current_cubeIndex " + current_cubeIndex );
                }
 
                public function enterFrame(e:Event) : void
                {
                        renderer.renderScene(scene, camera, viewport);
                        if(current_cubeIndex != -1)
                        {
                                TweenLite.to(cubesArray[current_cubeIndex], 0.5, { rotationY:180, ease:Quint.easeInOut } );
                                current_cubeIndex = -1;
                                trace("current_cubeIndex = " + current_cubeIndex);
                        }
                  cubesArray[39].rotationY += 6;
                }
        }
}

но событие мышы не работает! Что делать?? где ошибка?


Часовой пояс GMT +4, время: 20:02.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.