- 浏览: 20048 次
- 性别:
- 来自: 深圳
最新评论
关于Flex4工程和 Alternativa3D 7.5.1的疑问
- 博客分类:
- 技术杂绘
原文:http://bbs.9ria.com/thread-69668-1-1.html
Alternativa3D 现在对外免费了。现在是7.5.1版本。。在版本5的时候,可以在flex 工程中使用,网上有例子。但7.5.1通过同样的方法,不能使用,只能通过flex里的action script项目使用。
研究了一下午,发现Alternativa3D里常用的stage无法被写入长度、宽度、子控件等。
stage在flex工程里是只读类。。
不知道哪儿高手 有Alternativa3D 高版本,在flex4 工程里使用的例子啊?或者这个问题怎么绕道解决。
---------------------------------
问题已解决。昨天研究一晚上,最后发现在flex4中,UIComponent完全可以当作Sprite用。而不必像网上说的 所以我们可以直接自定义类,继承自 UIComponent,然后把这个类当作Sprite用就好了。
还有一点需要注意:A3D中,在初始化和每帧进入执行的函数中,一般都会设置摄像机观察窗的尺寸。在7.5.1官方的例子中是 camera.view.height=stage.stageHeight,这样写的。如果我们用flash builder4(flex4)新建actionscript项目,这样写不会有问题。但如果在flex项目中这样写,会出现舞台全屏的情况。即冲出 UIComponent的范围。加入用一个panel装UIComponent,然后panel放在application的某个位置,我们的3D场景会 充满整个屏幕。解决办法是:camera.view.height=mYUIComponent.height.
下面是调试代码,将alternativa3D的hello3Dworld用Flex工程展现出来,将3D场景装在panel组件中。。
代码如下:主启动mxml文件:
flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:lht="lht.*">
BasicView3D.as文件 package lht{
import mx.core.UIComponent;
import mx.controls.Alert;
import flash.events.Event;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import alternativa.engine3d.core.Camera3D;
import alternativa.engine3d.core.Object3DContainer;
import alternativa.engine3d.primitives.Box;
import alternativa.engine3d.core.View;
import alternativa.engine3d.materials.FillMaterial;
public class BasicView3D extends UIComponent{
//总容器
private var rootContainer:Object3DContainer = new Object3DContainer();
//摄像机
private var camera:Camera3D;
//正方体
private var box:Box;
public function BasicView3D(){
super();
addEventListener(Event.ADDED_TO_STAGE, init);
}
public function init(e:Event): void{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
camera = new Camera3D();
camera.view = new View(this.width,this.height);
camera.view.hideLogo();//隐藏图标
camera.diagram.visible=false;//隐藏FPS显示
addChild(camera.view);
addChild(camera.diagram);
camera.rotationX = -120*Math.PI/180;
camera.y = -800;
camera.z = 400;
rootContainer.addChild(camera);
box = new Box(200, 200, 200, 5, 5, 5);
var material:FillMaterial = new FillMaterial(0xFF7700, 1, 1);//材质
box.setMaterialToAllFaces(material);
rootContainer.addChild(box);
stage.addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
private function onEnterFrame(e:Event):void {
camera.view.width=stage.stageHeight
camera.view.width = this.width;
camera.view.height = this.height;
box.rotationZ -= 0.01;
//重新渲染
camera.render();
}
}
}
发表于 @ 2010年12月30日 22:32:00 |
发表评论
-
字符串Hash函数对比
2012-07-06 09:51 921今天根据自己的理 ... -
正则表达式中的换行
2012-07-06 09:45 5037正则表达式在处理字符串的时候,效率很高。但是需要熟练掌握, ... -
第 32 章 正则表达式
2012-07-06 09:37 706以前我们用grep在一 ... -
Flex基于FXG仪表盘(附全部源代码)二
2012-07-06 09:30 1682上文我们已经完成一个仪表盘的fxg,然后把我们的fxg转化 ... -
使用js高亮菜单中属于当前页,显示网页路径,
2012-07-05 20:45 714使用js高亮菜单中属于当前页,显示网页路径, 收藏 ... -
Excel导出组件
2012-07-03 13:42 678在浙江移动的一个 ... -
学习flex 初步实现与java进行数据交互
2012-07-02 10:24 520本人是从事BS架构 ... -
Flex嵌入jsp开发心得
2012-07-02 10:24 509PM搞了个外包的小项目,要求使用jsp显示数据统计图表。研 ... -
将flex组件添加到papervision3d
2012-07-02 10:24 537上一篇文章介绍了 ... -
Flex DataGrid 控件知识汇总,创建、全选、删除、分页、样式
2012-07-01 09:43 946DataGrid控件是一个可以展示多列数据的列表控件。它是 ... -
flex与数据库交互
2012-07-01 09:43 528Flex最近学了,但是感觉使用Flex与数据库交互,是可以 ... -
Flex和Java 整合
2012-07-01 09:43 708Flex和Java 整合有几种方法,最常见的是: 一 ... -
采用数据库为Flex Tree组件的提供数据-FlexTree组件
2012-07-01 09:43 598FlexTree组件 Tree 数据格式以为: ... -
Flex 文件上传导入组件
2012-07-01 09:43 698上文讲到Flex利用Blazeds来上传文件,本文则封装了 ... -
关于ubuntu更新完compiz出现没有标题栏的解决方法
2012-06-30 17:59 1042关于ubuntu更新完compiz出现没有标题栏的解决方法 ... -
恢复9.10Grub引导过程的离奇经历以及解决方法
2012-06-30 17:59 675昨天师兄找我帮忙 ... -
Validation of viewstate MAC failed. 解决方法
2012-06-30 17:58 835专注于web技术,但是不要沉湎于其中,开心就好! ... -
Argument list too long 错误解决方法汇总
2012-06-30 17:58 2000这篇文章是回复前几天在论坛一个朋友提出的问题,今天有空,整 ...
相关推荐
Alternativa3D-master 8.32 Alternativa3D-master 8.32 Alternativa3D-master 8.32
alternativa3D 7.5 加载并播放 dae格式的模型文件(完整源代码),附:流星蝴蝶剑 孟星魂模型及贴图、alternativa3D 7.5 swc。
Alternativa3D 8 graphics Flash 3D engine is out in Open Source. 业内著名的A3d开源了,不可错过啊;flash 3d引擎。
Alternativa3D 8的到来意味着 Flash 真正踏入3D时代 。这就是Alternativa3D最新版本的中文帮助文档,非常实用。
alternativa3d 灯光 实现。。源码
Alternativa3D 官方中文翻译api
Alternativa3D7的中文教程5篇,源码无份,以及英文API
Alternativa3d 官方教程中文翻译
Alternativa3d官方教程翻译版本 Alternativa3d官方教程翻译版本
Alternativa3D实现红蓝立体代码
Alternativa3D 开源的3d引擎demo
Alternativa3d API Actionscript3
3DSmax2011导出Alternativa3D_8,适用32位和64位系统。
alternativa3d API希望能为大家提供方便!
Alternativa3D SWC
flash Alternativa 3D 基础 理论flash Alternativa 3D 基础 理论
flash 3d 插件 alternativa3d 5.6.0
《创建 Alternativa3D 8 环境》中的示例代码,教程地址:http://www.chenlinsheng.com/?p=136
东西不错!!用过最好的flash3d引擎
著名的用ActionScript3.0编写的Flash 3D引擎,含语言手册及官方教程中文翻译。