查看: 1975|回复: 2
打印 上一主题 下一主题

Flash3D编程技巧_全景浏览的鼠标交互

[复制链接]

5472

主题

6

听众

1万

积分

版主

Rank: 7Rank: 7Rank: 7

纳金币
76544
精华
23

活跃会员 荣誉管理 突出贡献 优秀版主 论坛元老

跳转到指定楼层
楼主
发表于 2012-11-30 17:14:26 |只看该作者 |倒序浏览

1. 注册侦听器


Java代码  


    addEventListener(Event.ENTER_FRAME, onEnterFrame);   
    stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);   
    stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);  



addEventListener(Event.ENTER_FRAME, onEnterFrame);
stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);

2. MouseDown触发函数


Java代码



// 保存鼠标点击的摄像机参数和鼠标坐标信息   


    private function onMouseDown(event:MouseEvent):void  
    {   
        lastPanAngle = camera.panAngle;   
        lastTiltAngle = camera.tiltAngle;   
        lastMouseX = stage.mouseX;   
        lastMouseY = stage.mouseY;   
        move = ***e;   
        stage.addEventListener(Event.MOUSE_LEAVE, onStageMouseLeave);   
    }  



// 保存鼠标点击的摄像机参数和鼠标坐标信息
private function onMouseDown(event:MouseEvent):void
{
    lastPanAngle = camera.panAngle;
    lastTiltAngle = camera.tiltAngle;
    lastMouseX = stage.mouseX;
    lastMouseY = stage.mouseY;
        move = ***e;
        stage.addEventListener(Event.MOUSE_LEAVE, onStageMouseLeave);
}

3. MouseUp触发函数


Java代码


    private function onMouseUp(event:MouseEvent):void  
    {   
        move = false;   
        stage.removeEventListener(Event.MOUSE_LEAVE, onStageMouseLeave);        
    }  



private function onMouseUp(event:MouseEvent):void
{
        move = false;
        stage.removeEventListener(Event.MOUSE_LEAVE, onStageMouseLeave);     
}

4. 每帧都调用的onEnterFrame


Java代码


    private function onEnterFrame(event:Event):void  
    {   
        if (move) {   
            camera.panAngle = 0.3*(stage.mouseX - lastMouseX) + lastPanAngle;   
            camera.tiltAngle = 0.3*(stage.mouseY - lastMouseY) + lastTiltAngle;   
        }   
           
        camera.hover();   
        view.render();   
    }  



private function onEnterFrame(event:Event):void
{
        if (move) {
                camera.panAngle = 0.3*(stage.mouseX - lastMouseX) + lastPanAngle;
                camera.tiltAngle = 0.3*(stage.mouseY - lastMouseY) + lastTiltAngle;
        }
       
        camera.hover();
        view.render();
}
  更多Flash3D编程技巧分享尽在web3D纳金网http://www.narkii.com/
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

无效楼层,该帖已经被删除

0

主题

1

听众

2458

积分

中级设计师

Rank: 5Rank: 5

纳金币
0
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2014-2-22 15:20:36 |只看该作者
好东西啊,感谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-23 16:35 , Processed in 0.123137 second(s), 32 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部