在flash cs4以上版本的3D基础 (as3.0)

flash AS3 way3d全景及3d相册演示源码 flash AS3 way3d全景及3d相册演示源码,全景3d显示,图片3d反转,带背面,ui自适应屏幕,方便扩展。鼠标拖拽观看效果 立即下载

又是一阵子没更新了,一直在考虑关于这个3D的问题。

自从CS4版本的FLASH出来过后增加了许多类,诸如现在要介绍的3D类,和之前发的3D基础的思想是一样的。但是我想单独提出来。看完后肯定会觉得是相当有必要的。

   

(以下就不再重复CS4版本作为环境了)

 

    再回顾下转发的十五章的公式:

基本 
scale = fl / (fl + zpos);
sprite.scaleX = sprite.scaleY = scale;
sprite.alpha = scale; //  可选
sprite.x = vanishingPointX + xpos * scale;
sprite.y = vanishingPointY + ypos * scale;

 

Z  排序:
//  假设有一个带有 zpos 属性的 3D 物体的数组
objectArray.sortOn("zpos", Array.DESCENDING | Array.NUMERIC);
for(var i:uint = 0; i < numObjects; i++) {
    setChildIndex(objectArray[i], i);
}
 

 坐标旋转:
x1 = cos(angleZ) * xpos - sin(angleZ) * ypos;
y1 = cos(angleZ) * ypos + sin(angleZ) * xpos;
x1 = cos(angleY) * xpos - sin(angleY) * zpos;
z1 = cos(angleY) * zpos + sin(angleY) * xpos;
y1 = cos(angleX) * ypos - sin(angleX) * zpos;
z1 = cos(angleX) * zpos + sin(angleX) * ypos;
 
3D  距离:
dist = Math.sqrt(dx * dx + dy * dy + dz * dz); 

看着相当的麻烦吧,是不是觉得如果有个Z柱属性是多么的有必要。现在的确增加了这个属性。

上面所述的

scale = fl / (fl + zpos);
sprite.scaleX = sprite.scaleY = scale;
sprite.alpha = scale; //  可选
其实相当于现在Z,

用法和X,Y一样,比如sprite.z=100;

回顾下坐标表示:

 

 

在flash <wbr>cs4以上版本的3D基础 <wbr>(as3.0)

图 15-1  右手坐标系


在flash <wbr>cs4以上版本的3D基础 <wbr>(as3.0)

图 15-2  左手坐标系

经过测试 这里的Z坐标是用了右手坐标系,也就是向内是+Z,向外是-Z,不算太抽象吧?

用之前转发的透视效果来修改下:

package {
 import flash.display.Sprite;
 import flash.events.Event;
 import flash.events.KeyboardEvent;
 import flash.ui.Keyboard;
 public class sampleDEMO extends Sprite {
  private var ball:Ball;
  private var xpos:Number=0;
  private var ypos:Number=0;
  private var zpos:Number=0;
  private var vpX:Number=stage.stageWidth/2;
  private var vpY:Number=stage.stageHeight/2;
  public function sampleDEMO() {
   init();
  }
  private function init():void {
   ball = new Ball();
   addChild(ball);
   addEventListener(Event.ENTER_FRAME, onEnterFrame);
   stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
  }
  private function onEnterFrame(event:Event):void {
   xpos=mouseX-vpX;
   ypos=mouseY-vpY;
   ball.z=zpos;
   ball.x=vpX+xpos;
   ball.y=vpY+ypos;
  }
  private function onKeyDown(event:KeyboardEvent):void {
   if (event.keyCode==Keyboard.UP) {
    zpos+=5;
   } else if (event.keyCode == Keyboard.DOWN) {
    zpos-=5;
   }
  }
 }
}

这里的ball可以换成其他什么元件都可以。其实就是把Z柱表示那两段替换成了Z,这样省了不少代码量。

之前转发的里面有一个fl的量,这里可以直接看成是z的0点到-z的一段距离。也可以设置成一个常数,习惯上就设置成250,但是是用的右手坐标系所以fl=-250。这个变量任然可以充当一个物体可见的值,小于这个变量的时候物体就不可见了。这样显得更真实些吧。

比如加在上面那段代码上:

private function onEnterFrame(event:Event):void {
  if (zpos <fl) {
   xpos=mouseX-vpX;
   ypos=mouseY-vpY;
   ball.z=zpos;
   ball.x=vpX+xpos;
   ball.y=vpY+ypos;
  ball.visible = true;
  } else {
  ball.visible = false;
 }
}

这样超出屏幕的时候就消失了。

 

大家可以在Z柱上加上加速度,或者设置个范围作反弹之类的练习看看效果。

在前面十五章里面也有很多例子,可以稍加修改就能把Z利用起来。

 

而Z柱的排序的问题也可以通过数组来记录,因为有了具体的值更容易控制排序了。

 

现在不仅增加了Z坐标,更增加了坐标的旋转一属性,帮助下只说了下rotationX,rotationY,

存储此关键帧的 rotationX 属性。此属性是目标对象相对于其原始方向围绕 x 轴的旋转角度。

存储此关键帧的 rotationY 属性。此属性是目标对象相对于其原始方向围绕 y 轴的旋转角度。

其实Z柱也有这个属性rotationZ,用法也和坐标Z是一样的。

例如:sprite.rotationZ=30;

 

现在暂时想的就这么多了以后有问题再继续补充吧~~

 

 

(如果要转载请注明出处http://blog.sina.com.cn/jooi,谢谢)

flash as3.0 3D 可实现图片的3D旋转效果,具有立体效果,画面逼真。 立即下载

相关推荐

3D立体展示图片-附as3源码

AS3.0做的3D立体展示图片,很有用的

as3编写3D原理(笔记)

[img]http://dl.iteye.com/upload/attachment/480976/ab61c670-7462-353a-8234-e2947c9652e9.png[/img] 1、基本原理:三角形相似原理 d/(d+z) = x1/x d/(d+z) = y1/y 2、(x1, y1)为二维坐标系,(x, y)为三维坐标系,d/(d+z)为换算比率 3、...

iiacm的博客 305

AS3.0 三维萤火虫 源代码实例

未使用其他3D类引擎。直接使用FLASH中自带的3D类制作。 是我个人制作的一个逼真萤火虫的源代码包

基于as3实现的简单3d地球

经过我一天的努力 总算是弄好了 哈哈 虽然很菜,但是总算弄出个东西了,这个是以x轴为中心点转动,暂时没有加进交互。 Code 1package 2{ 3import__AS3__.vec.Vector; 4 5importflash.display.Bitmap; 6importflash.disp...

weixin_30267785的博客 218

as3.0做的3D效果Menu

部分代码: private function enterFrameHandler(event:Event):void { align(_num); if (_num>0 && event.target.x<_center.x) { event.target.removeEventListener(Event.ENTER_FRAME, enterFrameHandler); } else if (_num<0 && event.target.x>_center.x) { event.target.removeEventListener(Event.ENTER_FRAME, enterFrameHandler); }

flash3d教学之基础知识02-drawTriangles绘制两个三角形[转]

NULL 博文链接:https://ienown.iteye.com/blog/1008325

AS3 3D 电子相册 (源码+注释+测试+运行效果图)

源码项目:Flash Builder 4.6 工程 倒影类: package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BlendMode; import flash.display.DisplayObject; import flash.dis

Jave.Lin 的学习笔记 6250

从412到200:一步步拆解瑞数6代jsvmp的cookie生成与验证流程

本文深入解析瑞数6代JSVMP的动态安全防护机制,详细拆解从412到200状态的cookie生成与验证流程。通过剖析JSVMP虚拟机核心机制、动态元数据解析及环境检测绕过策略,为逆向工程师提供实用的技术解决方案,帮助突破瑞数6代的高级防御体系。

weixin_30342209的博客 510

一个超轻量级的AS3 3D Engine-ND3D

ND3D是一个超轻量级的AS3 3D Engine, 它的最大特点就是轻, 全部引擎文件编译后只有10K. 最新版本为0.2 基本的3D功能都满足, Mesh Loader, interactive 3DObject, Basic Light System, Custom renderer等, 当然功能上和Away3d以及Papervision3D还是没法比, 但是确实很小巧, 适合那些没有...

hgfghe8 359

VirtualBox安装Win10虚拟机超详细教程(附微软官方镜像下载)

本文提供了一份详细的VirtualBox安装Win10虚拟机教程,涵盖从环境准备、工具下载到系统安装与初始配置的全过程。特别推荐使用微软官方镜像下载,确保系统纯净安全。此外,还分享了性能优化技巧和常见问题解决方案,帮助用户高效搭建稳定的Windows测试环境。

weixin_29243279的博客 920

MySQL下载和安装教程

1.下载MySQL数据库可以访问官方网站:https://www.mysql.com/ 2.点击DOWNLOADS模块下的Community模块下的MySQL Community Server进行下载。 由于目前最新版本是:MySQL Community Server 5.7.21 建议博友下载历史版本,本博下载的是5.6.39 下载步骤: 进入,选择MySQL的版本及主机 根据自己的电脑选择相应的位数进行下载,本机是64位,点击download。 进入下.

残雪的剑的博客 4万+

Papervision3D之Flash CS3

http://www.unbe.cn/blog/index.php?cat=84#038;paged=1[以上是达达的教程文章]1、新建一个实验用的文件夹,文件名为myTest2、打开FLASH CS3,新建个FLA文件650) this.width=650;;op_start();" vspace="5" border="0" src="http://www.ogo.cc/omspic/

2201

S.BUS协议及编解码,C语言源码

1、简介 SBUS本质是一种串口通信协议,采用100K的波特率,8位数据位,两位停止位,偶效验,即8E2的串口通信。 值得注意的有三点: 1.SBUS采用负逻辑,所以无论接收还是发送都要进行硬件取反(注意,一定要硬件取反),电路如下 这是我在网上看资料时看到的电路,实际上我用的是下面这个电路 2.SBUS有两种模式, a.高速模式:每4ms发送一次 b...

qq_31232793的博客 1万+

Flash修改:百叶窗式切换效果【AS 3.0】

  我最早是2014年在鼠标炸弹【http://mousebomb.org/2018/】的技术博客【闪界】上看到的这个效果,虽然分类打的是原创,但主要部分是鼠标炸弹在更早的时候编写的,我只算个修改者。原作品在它的博客中【http://www.flashj.cn/wp/as3-baiyechuang-qiehuan.html】。   早在2009年,也就是Action Script 3.0发布不久...

Tclser的博客 623

oracle两节点RAC,由于gipc导致某节点crs无法启动问题分析

两节点RAC,其中1 节点集群CRS无法启动。经过分析原因为2节点gipcd进程异常,导致节点之间无法正常通信,重启2节点gipcd.bin后问题得以恢复。 从现象来看,是 ora.crsd...

cuibaye0692的博客 4536

ElaticSearchUtil工具类封装

package com.xxx.util; import org.elasticsearch.action.admin.cluster.state.ClusterStateResponse; import org.elasticsearch.action.admin.indices.analyze.AnalyzeAction; import org.elasticsearch.action.ad

会飞的狼 6295

用ActionScript在Flash中实现3D视角的控制

本文来自:9RIAFlash CS4专业版的3D能力允许我们进行变焦和透视角度的改变,而且他的强大3D处理数学函数让它在3D场景的内外导航起来更加简单。现在游戏开发者和动画家们能够轻而易举的导入三维视图和运动效果了。这个教程探讨的两种改变舞台显示效果的方法通过移动和变焦改变观察点在三维空间里移动对象本身移动观测角度是非常简单的,用起来就好像是

lihe111的专栏 2266

Vue3 - 完美解决 vite 打包后在本地浏览器直接打开运行,build 打包后双击 index.html 直接以 file 协议运行网站(资源、接口等正常访问,和部署到服务器运行效果一样)

vue3vite怎么支持file协议本地打开,vite打包文件如何支持files协议,支持双击即可打开网页,vue3vite打包后双击本地运行,vue3vite打包后怎么直接在浏览器双击打开访问,vite打包后显示空白,vite如何支持本地file协议打开,vue3vite打包后如何本地查看网站,vue3vite项目打包后本地启动白屏怎么办,vite打包后的代码如何在本地运行,vite+vue3打包在fIle本地index.html打开项目,打包后如何直接打开index.html文件,vue3

🏆 前端领域优质创作者 1万+

在flash cs5.5中配置flashplayer11 AIR3 Alternativa3D 8

这是我亲自测试了很多文章的方法后,对测试成功的文章进行的拼接,希望能对大家有帮助! 如有版权问题,请立即联系我,我将马上删除。 相关下载 Flash播放器:FlashPlayerDebugger.exe playerglobal:playerglobal.swc AS3 3D框架:Alternativa3D 8 相关文件打包下载(debug播放器+playerglo

大柏树的专栏 6084

【AI智能体】Coze 打通MySql实现数据报表展示应用搭建详解

Coze 打通MySql实现数据报表展示应用搭建详解

congge 3857

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

也论Flash 3D和Unity 3D的未来

可以说,自从2000年开始接触Flash以来,我就一直期望有一天能在Flash里面自由地运用3D模型,原因是当时我在上海交大同时学习Flash 4和Maya 3。多少年后,两个软件的版本伴随着我的年龄一起增长,在Flash领域我也渐行渐深,但是在3D领域一直没有什么建树,因为我一直没有在工作上进入这个领域。不过一些主流的3D软件依旧是我硬盘中的常客,因为在内心深处,其实我还是偏爱3D技术多一些。

1976

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

站内站外AS3资源导航帖

1、flash开发工具 adobe flash cs5免费试用版 flashdevelop最新版 flex_sdk最新版 ★工具的使用 flashdevelop详细配置 flashdevelop格式化代码插件 2、框架,2d,3d

沙漠之泉 947

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

配置Flash CS5.5支持FLASH PLAYER11 和 AIR3.0

前言:尽管本文标题是针对CS5.5版,实际上对CS4、CS5版本仍然有用!       北京时间 2011.10.4 Adobe 发布了 FLASH PLAYER11 和 AIR3.0!新的播放器增加了一组低级别的硬件GPU加速3D API,以获得性能的提升。无论如何,这个似乎是期待已久的了!基于官方没有放出FLASH CS5.5更新补丁前,稍加配置提前体验新功能:     一、

wkyb608的专栏 1576

Flash3D编程探秘- Flash与3D空间

Flash 和 3D空间第一件事情我想你知道的是,在Flash里,并不存在真正的3D,或者我应该说,Flash CS3并不支持3D绘制。我们所做的是运用Flash里的2D绘制方法去模拟3D绘制,Flash并不知道3D是什么也不知道如何去处理3D对象。但是好消息是所有的3D处理和3D计算都是建立在数学计算的基础上的,加上Flash知道如何的处理数学计算。太好了,这些工具足以使我们创造出自己的动画了。这并不是说Flash里的3D编程要简单,与其相反,如果你打算深入去探索的话你会发现你会进行很大一部分的Low l

august5291的博客 540

Dragon-Studio 之 Flash Alternativa 3D引擎 基础教程

  欢饮大家来到Dragon的工作室,这是我第一次发表经验,有不对的地方请大家包含包含,呵呵。 进入正题吧》》》 *申明:教程中用到的3D引擎Alternativa均以非盈利教学为目的,不得用于任何商业用途。如要购买正版请访问官网网站:http://alternativaplatform.com/en/ 一.Flash Alternativa 3D引擎简介         自从5年前我接触...

資料為我做事 232
上一篇: 转 第十五章 3D 基础 (3)(as3.0)
下一篇: 转 第十六章 3D 线条与填充(1) (as3.0)
coding_most
博客等级 码龄15年 13粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值