`

flex/flash 3d基础1

阅读更多
新的flex/flash给了3D一个很好的展示平台,下面就让我们走进flash3d世界
【贝武易科技专业flex3D开发--www.newflash3d.com】
十分感谢kirupa.com的贡献。
下面我们进入flex,新建一个项目Zooming Figures如下:


选择项目根目录,单击右键选属性,导入一个SWC文件,这个文件为我们从flash cs3输出来库文件,具体的输出方法见http://bvu.iteye.com/blog/283173


导入Figure.swc。(我们在下面提供了该文件)
导入界面


导入完毕后,关键的一部是要在flex中使用它,把主程序改为
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:local="*" layout="absolute">
<local:figure/>
</mx:Application>

我们分析一下代码
xmlns:local="*",告诉程序一个新的组见空间,local是新的组件空间名,*表示应用这个组件空间里的所有组件,我们在--flex组件样式演示--里有专门的介绍,这里就不细说了。
<local:figure/> 生成一个组件,我们可以看到场景中多出了一个人物角色的图,他就是我们的figure组件了。


上面我们成功的导入了一个swf来作为flex的应用,但是上面的方法导入的swf,我们发现有一个问题是在应用它的scaleX、scaleY的时候不起作用。
所以我们利用另外一种方法导入,使用SWFLoader组件,这个组件很好的控制和利用了swf的属性,同时可以控制导入的swf作为一个MovieClip,控制它的播放和暂定等。
所以,利用SWFLoader组件作为导入完整的代码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="init();">
<mx:Canvas width="300" height="300">
	<mx:SWFLoader id="swfload" source="assets/Figure.swf"/>
</mx:Canvas>
<mx:Script>
	<![CDATA[
	    private var FigureA:MovieClip;  
		private function init():void{    
		    FigureA = swfload.content as MovieClip;
		    addEventListener(Event.ENTER_FRAME, aa);
		}
		private function aa(evt:Event):void {
			text1.text = String(FigureA.x);
		}
		
	]]>
</mx:Script>
<mx:Text id="text1"/>
</mx:Application>

简单的解析:
我们通过mx:SWFLoader把Figure.swf导进去。
把SWFLoader放到一个Canvas里去,代码如下:
<mx:Canvas width="300" height="300">
<mx:SWFLoader id="swfload" source="assets/Figure.swf"/>
</mx:Canvas>
<mx:Text id="text1"/>是加入一个辅助显示的文字组件;
好,准备元素准备好了,下面我们就进入三维的世界!!
因为flex\flash它们只是一个二维的平面显示(X,Y),我们需要模拟出一个Z轴出来,我们这样定义,以你作为参考,你的显示屏幕的平面为0平面,也就是Z轴为零,所有的图像都投影到这个平面来显示出来,远离你而去的方向为Z轴的正方向,冲着你来的方向为Z轴的负方向。
三维里的基本概念:
供投影显示的平面(这里是我们的flex显示屏幕);
焦距;
Z轴;
当然,这所有的元素都是虚的概念,需要我们去在空间想像的去构建。
焦距:FocalLength = 300;
在flex里的代码为
private var FocalLength:Number;
FocalLength=300;

默认的情况下我们的flex舞台的坐标为X、Y,如下图


我们虚拟出一个Z轴来,如图


看下面的关系图:


从这个图我们可以看出,物体(红色箭头)如果沿着Z轴平行移动,在观察点看来,它投影到显示屏幕上的显示物体(小的红色箭头)他们始终是有这么一种关系:(注:“:”是比的意思)
物体投影的高度:焦距=物体实际的高度:(物体的Z轴值+焦距)
如果我们定义一个缩放比率(scaleRatio):
缩放比率(scaleRatio)=物体投影的高度:物体实际的高度;
那么我就可以获得
缩放比率(scaleRatio)=物体投影的高度:物体实际的高度=焦距:(物体的Z轴值+焦距)
如下图


对于X和Y轴,他们服从同样的关系,但是我们只要用一个缩放比率(scaleRatio)就行,他们服从同样的规律。
【贝武易科技专业flex3D开发--www.newflash3d.com】
这一节就讲到这里,请看下一节,flex/flash 3d基础2,接着讲。
  • 大小: 43.2 KB
  • 大小: 24.2 KB
  • Figure.rar (28.8 KB)
  • 描述: FigureMov.swf供下载
  • 下载次数: 170
  • 大小: 55.4 KB
  • 大小: 16.8 KB
  • Figure.rar (29.6 KB)
  • 描述: Figure.swf 静止的Figure
  • 下载次数: 160
  • 大小: 23.1 KB
  • 大小: 31.3 KB
  • 大小: 41.7 KB
  • 大小: 30.4 KB
分享到:
评论

相关推荐

    FLEX 3DMENU 3D菜单 + 特效

    在Flex中实现3D菜单,通常需要利用ActionScript 3.0的3D库,如 Papervision3D 或 Away3D,这些库允许开发者在Flash环境中创建复杂的3D图形和动画。 3. **特效**:在"3DMENU FLEX"中,特效可能指的是菜单项在展开、...

    flex 3D拖拽不同角度观看

    首先,让我们了解Flex中的3D基础。在Flex中,我们可以通过导入mx.core.threeD包来启用3D特性。这将允许我们在舞台上创建3D对象,并通过设置transform3D属性来调整其位置、旋转和缩放。3D坐标系统与2D不同,它包括X、...

    完全基于FLEX的WEB3D引擎例子源码及教程.rar

    1. **基础理论**:讲解Web3D的基本概念,包括3D坐标系统、视图与投影、光照与材质等基本原理。 2. **Flex环境搭建**:如何安装和配置Flex Builder,以及设置项目结构,为Web3D开发做好准备。 3. **ActionScript ...

    flex3D效果

    Flex3D效果是一种在Flash平台上实现的立体三维(3D)视觉展示技术,它使得开发者能够在Web上创建出富有交互性和动态性的3D图形应用。这个"flex3D效果"项目是一个专门用于浏览图片的3D展示应用,用户可以通过它在...

    flex 超强3D Demo,令人震撼!

    1. Adobe Flex:Flex框架使用MXML和ActionScript进行编程,提供了丰富的组件库和强大的数据绑定功能,使得开发者可以轻松创建具有复杂界面的Web应用,包括3D内容。 2. ActionScript 3:ActionScript是Flash平台的...

    flex3d实例

    1. **ActionScript 3.0**:作为Flex 3D的基础,ActionScript 3.0是AS语言的一个重大升级,提供了类型检查、垃圾回收等特性,显著提高了性能和开发效率。在Flex 3D中,开发者通过ActionScript来编写3D对象的交互逻辑...

    Flex 3D 立方体

    通过研究这个项目,你可以了解如何在Flex中集成第三方库,如何使用ActionScript 3进行3D编程,以及如何利用Flash Builder 4进行项目管理和调试。此外,这也能让你掌握如何利用Sandy 3D引擎创建更多复杂的3D模型和...

    [转] [Flash/Flex] 使用Flare3D来实现Flash 3D的推箱子游戏原型---纹理

    这篇教程主要介绍如何使用Flare3D在Flash/Flex环境中创建一个3D推箱子游戏的原型,重点关注3D纹理的应用。Flare3D是一个强大的工具,它为Flash开发者提供了将2D内容转换为3D场景的能力,使得在Flash平台上开发复杂的...

    多个完全基于FLEX的WEB3D引擎例子源码及教程

    Flash 3D指的是在Flash平台上实现的3D图形技术,这通常涉及到像 Away3D、Papervision3D 或 Alternativa3D 这样的第三方库,它们扩展了Flex和ActionScript的3D功能。通过这些例子和教程,学习者可以掌握如何在Flex...

    flex旋转3D

    1. **变换矩阵**:在3D空间中,物体的位置、旋转和缩放都是通过应用矩阵变换来表示的。在Flex中,我们可以使用`Transform3D`类来创建和操作这些矩阵。 2. **旋转轴和角度**:旋转一个3D物体通常需要指定一个旋转轴...

    flex中使用away3d引擎播放的帧动画示例

    首先,了解Flex和Away3D的基础是至关重要的。Flex是一种基于MXML和ActionScript 3.0的开发框架,用于构建富互联网应用程序(RIA)。它提供了丰富的组件库和强大的数据绑定机制,使得开发者可以方便地构建用户界面。...

    Flex 3D标签云

    1. **基础概念**:理解3D坐标系统,包括X、Y、Z轴的概念,以及如何在3D空间中定位和旋转对象。 2. **ActionScript 3.0**:学习面向对象的编程,熟悉基本类型、类、事件处理和动画帧脚本。 3. **MXML**:掌握Flex的...

    Flex 3D特效源码

    1. **ActionScript 3.0**:这是Flex编程的基础,是一种面向对象的编程语言,用于编写Flash内容。了解类、对象、函数和事件处理是必要的。 2. **Flex SDK**:这是开发Flex应用程序所需的软件开发工具包,包括编译器...

    flex3D菜单

    Flex是Adobe公司推出的一种基于...开发者需要具备扎实的Flex基础知识,以及对3D图形编程的理解,才能创建出这样的超酷菜单。提供的"3dtags.swf"文件很可能是最终的运行结果,通过浏览器的Flash插件即可查看。

    Flex 3D圆形隧道效果

    1. **3D图形基础**:首先,了解基本的3D坐标系统和几何概念是必要的,如顶点、多边形、变换矩阵、投影等。在Flex中,3D图形通过DisplayObject3D类和相关类来表示和操作。 2. **使用Scene3D和ViewPort3D**:为了在...

    flex pv3d test

    PV3D,全称 Papervision3D,是Flex中一个流行的3D库,它允许开发者在Flash平台上创建复杂的3D场景和交互式应用。 这篇博客文章的链接虽然没有提供具体内容,但通常会包含作者关于如何使用PV3D在Flex环境中进行3D...

    flex-3D图像环绕虚拟现实代码

    Flex,作为Adobe Flash Platform的一部分,曾是创建富互联网应用程序(RIA)的首选工具之一,尤其适用于构建2D和3D的互动内容。本篇文章将深入探讨如何利用Flex实现3D图像环绕和180度摄影机镜头变换效果,为3D图像...

Global site tag (gtag.js) - Google Analytics