Hello :)
Rapidement ;)

Tu bosses avec FlashDevelop ... et je trouve très étrange leur template
lorsque l'on crée une classe :


               public function Main():void
               {
                       if (stage) init();
                       else addEventListener(Event.ADDED_TO_STAGE, init);
               }

               private function init(e:Event = null):void
               {
                       removeEventListener(Event.ADDED_TO_STAGE, init);

C'est pour moi un peu n'importe quoi cette initialisation ... en principe tu
peux être certain que ta classe Main qui sera la classe principale de ton
application, sera attachée sur la scène, donc je vois pas trop l'intérêt
d'écouter qu'elle soit sur la scène pour lancer le code ... surtout que le
stage bah c'est ta classe.. à moins que tu charges ton swf dans un autre ?
Et dans ce cas dans tous les cas si tu considères ta classe, la classe de
plus bas niveau.. pas besoin de se prendre la tête :)

Ensuite tu tapes :

      stage.addChild(_container);

Pour moi là encore il suffit de taper un simple, tu es déjà dans le stage..
pas besoin d'aller le chercher ailleurs :)

      addChild(_container);

Sinon à mon avis .. vu ton code.. tu dois avoir un problème avec la
propriété "interactive" de ton Plane ? Dans ce cas le bug se trouve dans le
code de Papervision et faudrait aller regarder le code interne du framework
pour faire quelques logs (trace ou autre)

Je ne suis vraiment pas un pro au niveau utilisation de PV3D mais à mon sens
ils n'ont pas tout finalisé les interactions et doit y avoir un problème
dans leur implémentation... faut bien maîtriser la gestion des clicks sur
les DisplayObject et juste regarder ce qu'ils font :)

Si quelqu'un dans le coin maitrise un peu PV3D il devrait avoir eu ce
problème et donc avoir solutionné tout cela... maintenant pour ma part j'ai
pas encore eu le temps de regarder à quoi leur code ressemble ... donc pas
facile pour moi de t'en dire + :)

EKA+ :)





> package
> {
>        import org.papervision3d.events.InteractiveScene3DEvent;
>        import org.papervision3d.materials.ColorMaterial;
>        import org.papervision3d.objects.primitives.Cube;
>    import org.papervision3d.view.Viewport3D;
>    import org.papervision3d.cameras.*;
>    import org.papervision3d.scenes.Scene3D;
>    import org.papervision3d.render.BasicRenderEngine;
>        import org.papervision3d.objects.primitives.Plane;
>        import org.papervision3d.core.utils.Mouse3D;
>        import org.papervision3d.core.utils.virtualmouse.VirtualMouse;
>        import
> org.papervision3d.core.utils.virtualmouse.VirtualMouseMouseEvent
>        import org.papervision3d.materials.utils.MaterialsList;
>
>        import flash.events.*;
>        import flash.display.*;
>        import flash.utils.Timer;
>        import flash.text.TextField;
>
>        public class Main extends Sprite
>        {
>                private const REFRESH_FREQ:int = 30;
>
>                private var _container:DisplayObjectContainer;
>
>                protected var _viewport:Viewport3D;
>                protected var _renderer:BasicRenderEngine;
>                protected var _scene:Scene3D;
>                protected var _camera:Camera3D;
>                protected var _refreshBeacon:Timer;
>                protected var _plane:Plane;
>                protected var _mouse:VirtualMouse;
>                protected var _gizmo:Cube;
>                protected var _offset:int = 3;
>                protected var _output:TextField;
>
>                public function Main():void
>                {
>                        if (stage) init();
>                        else addEventListener(Event.ADDED_TO_STAGE, init);
>                }
>
>                private function init(e:Event = null):void
>                {
>                        removeEventListener(Event.ADDED_TO_STAGE, init);
>
>                        // container général
>                        _container = new Sprite();
>                        stage.addChild(_container);
>
>                        // initialisation PV3D
>                        _viewport = new Viewport3D(800, 600, false, true,
> false);
>                        _viewport.buttonMode = true;
>                        _container.addChild(_viewport);
>                        _renderer = new BasicRenderEngine();
>                        _scene = new Scene3D();
>                        _camera = new Camera3D();
>                        _camera.zoom = 1;
>                        _camera.focus = 1000;
>
>                        // récupére une VirtualMouse
>                        _mouse =
> _viewport.interactiveSceneManager.virtualMouse;
>
>                        // ajout objet interactif
>                        _plane = new Plane(new ColorMaterial(), 200, 200);
>                        _plane.material.interactive = true;
>
>  _plane.addEventListener(InteractiveScene3DEvent.OBJECT_OVER,
> onPlaneOver);
>
>  _plane.addEventListener(InteractiveScene3DEvent.OBJECT_OUT,
> onPlaneOut);
>
>                        _scene.addChild(_plane);
>
>                        // ajout curseur secondaire
>                        _gizmo = new Cube( new MaterialsList({all:new
> ColorMaterial(0x888888)}), 10, 10, 10 );
>                        _gizmo.z -= 200;
>                        _scene.addChild(_gizmo);
>
>                        var bx:Cube = new Cube( new MaterialsList({all:new
> ColorMaterial(0xFF0000)}), 10, 10, 10 );
>                        var by:Cube = new Cube( new MaterialsList({all:new
> ColorMaterial(0x00FF00)}), 10, 10, 10 );
>                        var bz:Cube = new Cube( new MaterialsList({all:new
> ColorMaterial(0x0000FF)}), 10, 10, 10 );
>
>                        bx.x = 100;
>                        by.y = 100;
>                        bz.z = 100;
>
>                        bx.scaleX = 15;
>                        by.scaleY = 15;
>                        bz.scaleZ = 15;
>
>                        _gizmo.addChild(bx);
>                        _gizmo.addChild(by);
>                        _gizmo.addChild(bz);
>
>                        // boucle principale
>                        _refreshBeacon = new Timer(1000 / REFRESH_FREQ);
>                        _refreshBeacon.addEventListener(TimerEvent.TIMER,
> onRefresh);
>                        _refreshBeacon.start();
>
>                        _output = stage.addChild(new TextField()) as
> TextField;
>                        _output.multiline = true;
>                        _output.mouseEnabled = false;
>                        _output.text = '---\n';
>                        _output.height = 600;
>                        _output.width = 800;
>                }
>
>                private function onVirtualMouseOver(e:MouseEvent):void
>                {
>                        _output.appendText('Main::onVirtualMouseOver\n');
>                }
>
>                private function onVirtualMouseOut(e:MouseEvent):void
>                {
>                        _output.appendText('Main::onVirtualMouseOut\n');
>                }
>
>                private function onPlaneOver(e:InteractiveScene3DEvent):void
>                {
>                        _output.appendText('Main::onPlaneOver\n');
>                }
>
>                private function onPlaneOut(e:InteractiveScene3DEvent):void
>                {
>                        _output.appendText('Main::onPlaneOut\n');
>                }
>
>                private function onRefresh(e:TimerEvent):void
>                {
>                        // fais bouger le curseur virtuel
>                        if (_gizmo.x + _offset > 300 || _gizmo.x + _offset <
> -300)
>                                _offset *= -1;
>                        _gizmo.x += _offset;
>                        _gizmo.y += _offset;
>                        _mouse.x += _offset;
>                        _mouse.y += _offset;
>
>                        _renderer.renderScene(_scene, _camera, _viewport);
>                 }
>        }
> }
>
>
>
>
> On 16 sep, 16:25, ekameleon <[EMAIL PROTECTED]> wrote:
> > Ah .. autant pour moi .. tu parles de Papervision dans le titre de ton
> > message .. mais manque tout de même les infos sur le reste (code, etc..)
> > EKA+ :)
> >
> > Le 16 septembre 2008 16:24, ekameleon <[EMAIL PROTECTED]> a écrit :
> >
> > > Hello :)
> > > Nouveau sur le FCNG ? :)
> >
> > > Faut qu'on devine beaucoup de chose dans ta question au dessus;)
> >
> > > J'imagine que tu parles de Papervision ? ?
> >
> > > Tu sais nous ne sommes pas tous des livres ouvert sur la connaissance
> > > universelle de tout ce qui existe en ActionScript ;) Faut un peu nous
> aider
> > > quand vous posez des questions ;)
> >
> > > Sinon comme toujours...
> >
> > > 1 - isole ton problème ... fait un code simple
> >
> > > 2 - donne nous du code ... on peut pas t'aider si tu montres pas ton
> code
> > > :) Et surtout pas tout ton code mais seulement celui qui va nous
> permettre
> > > de voir ce que tu fais :)
> >
> > > 3 - si tu utilises Papervision ou autre.. faut nous préciser plusieurs
> > > choses.. tu bosses en AS2/AS3 , avec FP9/FP10, dans FDT, FlexBuilder ?
> Dans
> > > un projet AS3/MXML ? etc....
> >
> > > Tu vois.. je dois te poser pleins de questions pour arriver à cerner
> ton
> > > problème... et c'est pas top du coup pour que de ton côté tu puisses
> avoir
> > > une réponse précise :)
> >
> > > eKA+ :)
> >
> > > Le 16 septembre 2008 16:20, fh <[EMAIL PROTECTED]> a écrit :
> >
> > >> Hello,
> > >> j'ai une scène qui doit gérer de manière simultanée :
> > >> - la souris de manière traditionnelle,
> > >> - un second pointeur, dont les données viennent de qqch de similaire à
> > >> WiiFlash.
> >
> > >> J'arrive sans problème à gérer les mouvements en x,y,z des deux
> > >> souris, mais mes objets ne dispatchent pas d'événements
> > >> InteractiveScene3DEvent.OBJECT_OVER et
> > >> InteractiveScene3DEvent.OBJECT_OUT quand le second pointeur est au-
> > >> dessus. Ca fonctionne uniquement avec le pointeur traditionnel.
> >
> > >> J'ai tout retourné, incapable d'y arriver. Une piste ?
> >
> >
> >
>

--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "FCNG" de 
Google Groupes.
 Pour transmettre des messages à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour résilier votre abonnement à ce groupe, envoyez un e-mail à 
l'adresse [EMAIL PROTECTED]
 Pour afficher d'autres options, visitez ce groupe à l'adresse 
http://groups.google.com/group/FCNG?hl=fr
-~----------~----~----~----~------~----~------~--~---

Répondre à