zoukankan      html  css  js  c++  java
  • Away3D4.0入门教程基础技巧

    转载自:http://bbs.9ria.com/forum.php?mod=viewthread&tid=132244&fromuid=56734
     

    好吧,我知道有很多人不会有兴趣一点点把教程全看完,所以,我先在这帖子里集中发布一些基础的,但大家又非常关心的问题,

    至于具体细节怎么实现,我会在以后的教程中慢慢完善,这里仅是为了提供给那些有一定动手能力的兄弟们自己先丰衣足食....

    1.怎么为一个Mesh设置各个不同部位的皮肤?
    调用Mesh的subMeshes,但前提是你的Mesh里有SubMesh...
    mesh.subMeshes[index].material = new TextureMaterial(new BitmapTexture(bitmapData));

    2.怎么才知道Mesh中是否有SubMesh?
    trace(mesh.subMeshes.length);
    结果非0则说明有SubMesh

    3.3DS文件无法成功加载怎么办?
    1.先用3dsMAX之类的软件打开你的3DS文件,删掉camera,保存,
    2.清除项目编辑器缓存(如Flash Builder的缓存),再次加载并测试

    4.3D对象上的Mouse事件为什么无效?
    需先允许Mouse事件,然后侦听MouseEvent3D
    mesh.mouseEnabled = true;
    mesh.addEventListener(MouseEvent3D.CLICK, mesh_clickHandler);

    3.跟随人物的血条与名字怎么做?
    可使用Sprite3D类,当然,你也可以参照它自己实现一个类来解决

    4.怎么才能让一个模型看上去像玻璃或是水晶?
    将Material设置为半透明,然后调用addMethod方法添加EnvMapMethod

    5.有没有简单的办法可以画路径动画的路线?
    可以使用旧版的preFab(最新支持away3d4的preFab3D目前还没有此功能),先将就用吧

    6.怎样才能让贴图的某部分变透明?
    使用png图片,然后...
    textureMaterial.alphaBlending = true;
    textureMaterial.blendMode = BlendMode.LAYER;  

    7.有没有办法显示MovieClip?
    目前官方暂时没有提供现成的办法,但....
    可以继承BitmapTexture,自己实现一个
    在继承的类中添加一个Sprite,并不需要添加到stage上
    然后侦听它的Event.ENTER_FRAME事件
    在每次事件触发时,draw一个新的BitmapData出来

    8.怎么为一个Cube每个面贴上不同的贴图?
    1.自己用6个PlaneGeometry+6个Mesh来实现一个新的Cube类,以达到每个面不同的贴图
    2.用SkyBox实现
    (推荐使用第一种方法,灵活度更高)

    9.怎样才能让模型变的更平滑?
    Weld.apply(mesh);

    10.怎样计算2点之间的距离?
    var v1:Vector3D = new Vector3D(0,100,0)
    var v2:Vector3D = new Vector3D(100,0,0);
    trace(v1.subtract(v2).length);

  • 相关阅读:
    python 获取qq群成员列表数据
    selenium定位伪类元素::before
    flask 重写HTTPException类并自定义异常信息
    flask 工厂模式与celery结合
    重写flask_sqlalchemy的BaseQuery下面的filter_by方法
    Pytest系列
    Pytest系列- 多重校验插件之pytest-assume的详细使用
    mysql 主主+ Keepalived 高可用
    redis 主从配置,主从切换
    FastDFS 学习笔记
  • 原文地址:https://www.cnblogs.com/tinytiny/p/2993383.html
Copyright © 2011-2022 走看看