Flash全景漫游教程及代码(PV3D)

合集下载

flash代码教程

flash代码教程

flash代码教程Flash代码教程 (500字)Flash 是一种广泛使用的多媒体平台,它能够创建动画、游戏和交互式应用程序。

Flash 使用一种称为 ActionScript 的编程语言来实现各种功能。

在本篇教程中,我将向您介绍 Flash 的基本概念,并分享一些编写简单代码的技巧。

第一步是了解 Flash 的基本概念。

Flash 文件是.swf 格式的,它可以在支持 Flash Player 的浏览器中运行。

Flash 文件可以包含图像,动画,声音和其他媒体元素,它们可以与用户进行交互。

ActionScript 是 Flash 的编程语言,它允许您在 Flash 文件中添加逻辑和交互性。

要开始编写 Flash 代码,您需要下载 Adobe Animate 或其他Flash 编辑器。

安装后,打开编辑器并创建一个新的 Flash 文件。

现在我们可以开始编写代码了。

首先,让我们从一个简单的例子开始。

我们将创建一个基本的动画,让一个图像在屏幕上移动。

首先,将图像导入到 Flash 文件中,然后给它一个实例名称 (例如 "myImage")。

现在我们可以编写代码了。

在 Flash 编辑器中,您可以通过单击 "窗口" 菜单,然后选择 "动作" 或按 F9 键打开动作面板。

在动作面板中,您可以编写ActionScript 代码。

首先,我们需要为图像创建一个运动效果。

我们可以使用"Tween" 类来实现这一点。

导入 Tween 类:importfl.transitions.Tween;。

然后,创建一个新的 Tween 对象并将其应用于 myImage。

var myTween:Tween = new Tween(myImage, "x",Strong.easeInOut, 0, 200, 2, true);上述代码通过 Tweens 类创建了一个名为 myTween 的 Tween 对象。

Flash AS3.0教程 Papervision3D应用3——PV3D对象的建立

Flash AS3.0教程 Papervision3D应用3——PV3D对象的建立

Flash AS3.0教程Papervision3D应用3——PV3D对象的建立Papervision3D(简称PV3D)是一个开源的3D引擎,用它可以比较容易制作出理想的3D效果,目的在于实现更加炫丽美观、功能强大的Flash 3D Web应用程序。

本例为Papervision3D入门系列教程,在本课中我们将学习Papervision3D对象的建立~~3D对象:3D坐标:在开始创建对象之前,让我们来看看对象在3D空间是怎样打破flash的传统风格的.在flash中你将一个对象定位到舞台上x:0,y:0的位置,对象被定位到左上角上.增加x对象向右边移动,增加y对象向下边移动.相反地,在Papervison3D中,x:0,y:0,z:0时对象在3D场景的中心(不在左上角).开始时Camera3D被定位在x:0,y:0,z:-1000,并对准原始点:x:0,y:0,z:0.增加x对象向右移动,增加y对象向下移动,增加z,对象向地平线移动.同样,要记住在3D对象相对于照相的位置的数字.你不要依赖于传统二维空间的flash像素的概念.下面是在3D中照相机位置的意义:x=10;//在Scene3D中心右边10 像素x=-10;//在Scene3D中心左边10 像素y=-10//在Scene3D中心下边10 像素z=-10;//靠近Scene3D中心10个像素(记住照相机的省缺z值是-1000,将z从0移到-10,将离-1000更近一些.)就算你不明白这些文章中涉及的数学知识,你也许知道3D对象是建立在3D坐标之上的.这些3D坐标(也可叫顶点)来自三角形.三角形组成多边形的网状物或平常人叫做3D对象.注意:PV3D使用画家的算法来排列这些可见的三角形.画家的算法非常快(理想的flash payer 中),但在三角形重叠时会失败.你可以在你的3D对象中创建更多的三角形来减少重叠的发生.Plane (平面)我把平面看做是多数PV3D项目中最有用的3D对象.尤其是在交互式的项目中.奇怪的是,一个平面并不能被描述为3D对象,因为它没有深度.一个平面是两个静态三角形相互对接形成的矩形. 记住,将所有的3D对象包含到3D场景中,下面是使用一个平面的例子,创建它并将它添加到3D场景中.var plane:Plane = new Plane();scene.addChild(plane);一个平面省缺的框架材料(后面的章节将讨论)为宽500和高500.这样上面的代码将产生一个定位于x:0,y:0,z:0的宽和高均为500的平面框架正面的照相机(如果照相机在前面所讲的省缺的位置). 当你用一张图片作为材料粘帖到它里面,这个平面将是这张图片的省缺大小的位图.平面有下列可用参数:Plane( material:MaterialObject3D=null, width:Number=0,height:Number=0, segmentsW:Number=0, segmentsH:Number=0,initObject:Object=null )Material(材料), width, and height 不需在说明了吧.. SegmentsW and segmentsH 是设置平面宽和高的片段数量.比较多的片段数量将避免在平面各层次三角形旋转时产生扭曲的图象.下面的截图展示了宽为4个片段,高为3个片段的平面..应当注意当创建很多平面时,要为每一个面设置宽和高的片段数量,你将添加更多的三角形(一般来说为一个平面增加一个矩形确能优化平面的细节). Flash player能支持三角形的数量依赖于你的程序,但一般来说不要超过2000个.最后一个可选参数是initObject,能够储存平面的x, y, z, rotationX, rotationY, rotationZ, scaleX, scaleY, scaleZ, and “特别的”参数.作为选择你也可以在创奸平面后设置这些参数.下面的例子快速地说明了这个问题:var m:WireframeMaterial = new WireframeMaterial();//width and heightvar w:Number = 800;var h:Number = 800;//segmentsW and segmentsHvar sW:Number = 1;var sH:Number = 1;var initObject:Object = new Object();initObject.x = 100;initObject.rotationY = 30;initObject.scaleZ = 20;//Option #1 using initObjectvar plane:Plane = new Plane(m, w, h, sW, sH, initObject);scene.addChild(plane);//Option #2 setting properties directlyvar plane:Plane = new Plane(m, w, h, sW, sH, initObject);plane.x = 100;plane.rotationY = 30;plane.scaleZ = 20;scene.addChild(plane);关于平面最后一点注意:如果你旋转一个平面,你会注意到平面的另一边消失了.如果你想平面的两边都有材质的话,你将需要为你平面的材料设置“doubleSided”(两边)属性为可用. material.doubleSided = true;Sphere(球体)创建球体的方法非常类似创建一个平面.var sphere:Sphere = new Sphere();scene.addChild(sphere);一个球体的省缺参数类似于一个平面的参数.球体用radius(半径)代替宽和高.如果你还能记得高中的课程,你应该想起半径是圆心到圆周的距离. 与平面简单地用宽和高相反,球体用半径计算中心到边的距离,创建一个三角形的集合来制作一个球体.下面是省缺的参数: Sphere( material:MaterialObject3D=null, radius:Number=100,segmentsW:int=8, segmentsH:int=6,initObject:Object=null )简单来说,一个圆锥体和一个圆柱体将用类似的方法创建,下面是省缺参数:圆椎:Cone( material:MaterialObject3D=null, radius:Number=100,height:Number=100, segmentsW:int=8, segmentsH:int=6,initObject:Object=null )圆柱:Cylinder( material:MaterialObject3D=null, radius:Number=100,height:Number=100, segmentsW:int=8, segmentsH:int=6,topRadius:Number=-1,initObject:Object=null )Cube(立方体)当你将6个平面组合成一个盒子的形状你会得到什么?一个立方体.现在你应该已经熟练掌握了创建3D对象的方法了, 不过立方体将需要一个MaterialsList (后面的文章讨论). 你将明白怎样用一个MaterialsList 创建立方体.var frontMaterial:WireframeMaterial = new WireframeMaterial();var backMaterial:WireframeMaterial = new WireframeMaterial();var leftMaterial:WireframeMaterial = new WireframeMaterial();var rightMaterial:WireframeMaterial = new WireframeMaterial();var topMaterial:WireframeMaterial = new WireframeMaterial();var bottomMaterial:WireframeMaterial = new WireframeMaterial();var materialsList:MaterialsList = new MaterialsList();materialsList.addMaterial(frontMaterial, "front");materialsList.addMaterial(backMaterial, "back");materialsList.addMaterial(leftMaterial, "left");materialsList.addMaterial(rightMaterial, "right");materialsList.addMaterial(topMaterial, "top");materialsList.addMaterial(bottomMaterial, "bottom");var cube:Cube = new Cube(materialsList);scene.addChild(cube);当立方体正面向前,使用镜头是省缺的:z:-1000,看位于x:0,y:0,z:0的立方体,你看到的是立方体的背面,没有任何景深,它看上去就是一个平面.你可以设置立方体的rotation属性看到整体的立主体效果.下面是立方体的省缺参数:Cube( materials:MaterialsList, width:Number=500, depth:Number=500, height:Number=500, segmentsS:int=1, segmentsT:int=1, segmentsH:int=1,insideFaces:int=0, excludeFaces:int=0, initObject:Object=null )片段需要稍微说明一下,而方法与平面的一样:•segmentS –径向的段的数目(平面与宽垂直)省缺为1.•segmentsT –横向段的数目(平面与深度垂直)省缺值与segmentsS一样.. segmentsH –水平方向段的数目(平面与高度垂直)省缺值与segmentsS一样. insideFaces参数决定在立方体中哪一面会被显示.这在你想将照相机放到立方体内部仿佛在房间中一样是很有用的. 使用下面静态的公共变量,设置立方体钭包含的面:•Cube.NONE•• Cube.FRONT•• Cube.BACK•• Cube.LEFT•• Cube.RIGHT•• Cube.TOP•• Cube.BOTTOM•• Cube.ALL简单设置一个insideFaces 整数即可确定在立方体中你想呈现那些面.这个例子中,假如你只想包含顶面,查写下列代码:ollowing:var insideFaces:int = Cube.TOP;var cube:Material = new Cube(m, w, d, h, sS, sT, sH, insideFaces);只有左,右和下面::var insideFaces:int = Cube.LEFT + Cube.RIGHT + Cube.BOTTOM;var cube:Material = new Cube(m, w, d, h, sS, sT, sH, insideFaces);除前面外的所有面:var insideFaces:int = Cube.ALL - Cube.FRONT;var cube:Material = new Cube(m, w, d, h, sS, sT, sH, insideFaces);下一个参数, excludeFaces(排除的面)使用的方法相同,但是是排除你不想要面.想象一下打开盖子的鞋盒.Collada这是PV3D真正令人激动的东西,你可以用3D软件创建一个3D模型(3ds max, Maya, Blender, Swift3D等.),将它导出为Collada 文件.然后使用PV3D的DAE类加载进来.不幸的是这个内容可以专门写一篇文章,不过这里有几个演示函数对你也许有用.Loading Collada Files into Papervision3DTesting Kinematics with Papervision3D ColladaDCC Tutorials。

Flash动画播放控制通用制作方法与通用代码

Flash动画播放控制通用制作方法与通用代码
现代教学论提倡学生自主学习,自我探究,掌握知识,培养能力.基于这种需求,本文阐述了什么是CAI课件,Flash在众多课件制作软件中有哪些优势以 及如何使用Flash来制作课件.
9.期刊论文 关磊 浅谈Flash课件制作在多媒体教学中的应用 -福建电脑2008(2)
本文着重介绍了运用Flash制作课件的优势及方法,并提出了Flash课件制作在多媒体教学应用中应注意的几个问题.
Authorware和Flash是目前在各级学校中应用最为广泛的课件制作工具.两者相互结合,可实现优势互补.本文对Flash在基于Authorware的多媒体课件 制作中的具体应用做了深入的探讨.
2.期刊论文 汤锋.罗涓涓.Tang Feng.Luo Juan-juan Flash技术在课件制作中的应用 -黄冈职业技术学院学报
目前,相当数量的教师采用 nash制作课件,并将做好的SWF 格式的课件插入到PPT演示文 稿或网页中进行教学。然而,在 进行教学时SWF格式的课件不 能在PPT演示文稿和网页中得 到有效的控制,因而造成教学中 SWF格式的课件中一些细节难 以让学生观察清楚,从而降低了 花费很大工夫制作SWF格式课 件的意义。当然,利用PowerPoint 中的VBA或在网页中添加 VBScript脚本的方法也能对SWF 格式的课件播放进行有效控制, 但对很多未接触过VBA和 VBScript的一线教师来说都是无 法实现的。
6.期刊论文 亓文娟 Flash课件制作的探讨与研究 -福建电脑2007(4)
多媒体教学作为现代教育的一种教学模式,已被广泛运用于各学科的教学中.本文通过对Flash课件制作特点的分析,提出了flash制作课件适合的类型 ,特别是对课件制作中需要注意的问题进行了探讨,并结合课件制作中的两个技巧来说明flash在制作课件中的优势.

Flash AS3.0教程: PV3D程序结构

Flash AS3.0教程: PV3D程序结构

Flash AS3.0教程PV3D程序结构主要想说说AS3与AS2的不同之处,没有什么逻辑性,想到什么就写点什么,因此,它不适合AS高手们阅读。

本文将力求用最直白的语言,尽量不用那些艰涩难懂的名词和术语。

一、在什么地方写代码失望,以为要说点啥,原来是这么小儿科的问题。

没办法,我说过了,本文不适合AS高手阅读的。

为了更好地理解,我们还是用例子来说明。

现在,就让我们一起来回顾一下,在AS2中我们都会把代码写在什么地方。

我们在AS2中建一新文档,新建一个影片剪辑元件取名为bt,元件很简单,随便画一个方块就行,你说我偏要画一个园,那当然随你高兴罗,我没意见。

然后,在场景中,用文字工具建一文本框,设为动态文本框,实例名称命名为:text1,将元件bt从库中拖到舞台上,实例名称命名为:bt_mc.现在写代码,想一想,代码写在什么地方,我们来做下面三个测试:测试一:在帧动作中,直接写代码,点中第一层,第一帧,然后打开动作面板,在上面写到:text1.text = "代码执行了“;测试影片,OK,我们看到了”代码执行了“这几个字。

测试二:还在帧动作中写代码,将代码改为:bt_mc.onPress = function() {text1.text = "代码执行了“;}测试影片,当我们点击,元件bt_mc时,又看到了“代码执行了”几个字。

测试三:好象还可以把代码写到元件上,清除帧动作中的代码,点中bt_mc,打开动作面板,写下如下代码:on(press){_root.text1.text = "代码执行了“;}测试影片,点击bt_mc又看到了“代码执行了”几个字。

它怎么老是执行了呢,真是的。

下面我们在AS3中,作相同的测试:测试一、在测试影片时,我们还是看到了那几个字,它都又执行了。

那AS3和AS2不是一样的?你还写个啥子劲?是哈,整了半天AS3和AS2整成一样的了。

在“不到黄河心不死”的精神鼓舞下,我们还是把剩下的两个测试做完。

Flash制作3D类动画的教程

Flash制作3D类动画的教程

继续上次的学习,接下来要试试摄像机的移动了。

这里需要涉及几个概念,摄像机的坐标(x, y, z)和视觉角度(LookAt) 摄像机的位置可以使用(x, y, z)来定位; 视觉角度可以定义如何通过窗口来看场景。

lookAt(p_nX:Number, p_nY:Number, p_nZ:Number) 如:lookAt(0,0,0);//可以理解为通过摄像机的位置看场景。

摄像机的移动方式比较有意思,如果直接修改 x、y、z 坐标,视觉效果会与现实看到的情 况相同; 而 tilt、pan 则是与场景平行移动; roll 是以 z 轴移动,通过摄像机视野看上去是摄像机的旋转效果。

额外说一下 Line3D 是在场景中绘制了线段,这里用做参考线,代码不难理解我就不过多 解释了。

代码如下:package { import flash.display.Sprite; import flash.events.*; import flash.ui.*; import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Loader; import .URLRequest; import sandy.core.Scene3D; import sandy.core.scenegraph.*;import sandy.primitive.*; import sandy.materials.*; import sandy.materials.attributes.*; import sandy.core.data.*;/** * ... * @author ever5u */ public class fuxi extends Sprite { private var scene:Scene3D; private var camera:Camera3D; public function fuxi() { //创建一个摄像机 camera = new Camera3D(300, 300); camera.x = 100; camera.y = 100; camera.z = -300; camera.lookAt(0,0,0);//创建一个 Group var root:Group = createScene(); //创建场景 scene = new Scene3D( "scene", this, camera, root ); //创建实时侦听 addEventListener( Event.ENTER_FRAME, enterFrameHandler ); stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed); } var box = new Box("box", 100, 100, 100); var Plane:Plane3D; public function createScene() { var g:Group = new Group();//在场景画一个坐标定位点 Plane = new Plane3D("Texture", 300, 300); var myXLine:Line3D = new Line3D( "x-coord", new Point3D( -20, 0, 0), new Point3D( 20, 0, 0 )); var myYLine:Line3D = new Line3D( "y-coord", new Point3D(0, -20, 0), new Point3D( 0, 20, 0 )); var myZLine:Line3D = new Line3D( "z-coord", new Point3D(0, 0, -20),new Point3D( 0, 0, 20 ));g.addChild(myXLine); g.addChild(myYLine); g.addChild(myZLine); g.addChild( box ); return g; } public function enterFrameHandler(_evt:Event) { box.rotateX = mouseX; box.rotateY = mouseY; scene.render(); } public function keyPressed(_evt:KeyboardEvent):void { switch(_evt.keyCode) { case Keyboard.UP: camera.tilt += 2; //camera.y -= 2; break; case Keyboard.DOWN:camera.tilt -= 2; //camera.y += 2; break; case Keyboard.RIGHT: camera.pan -= 2; //camera.x += 2; break; case Keyboard.LEFT: camera.pan += 2; //camera.x -= 2; break; case Keyboard.CONTROL: camera.roll += 2; break; case Keyboard.PAGE_DOWN: camera.z -= 5; break; case Keyboard.PAGE_UP: camera.z += 5;break; } } }}效果:还有场景自适应的问题,需要说明一下。

FLASH实用代码大全flash动作代码flash常用代码flash教程

FLASH实用代码大全flash动作代码flash常用代码flash教程

外部调用swfon (release) {loadMovieNum("service.swf", 1);}外部调用数据loadVariablesNum("about.txt", 0);eCodepage = true;//中文音乐加入mySound = new Sound();mySound.attachSound("1");mySound.start();关闭指定音乐mySound.stop("1");外部调用音乐mySound=new Sound();mySound.loadSound("music.mp3",true);mySound.start(0,100)关闭音乐mySound.stop();链接场景:on (release) {gotoAndStop("猫的历史",1);}清空文本框_root.text=""On(Release)Set Variable:"input" = ""Set Variable:"output" = ""End On轻松实现Flash的全屏播放许多人都看过这样的效果:把光盘放入光驱后,光盘自动运行,接着便是一段Flash 制作的开场动画,动画是全屏播放的,且右键点击无效,动画播放结束后,出现“关闭”按钮,单击该按钮后,全屏动画关闭。

其实上面提到的全屏播放以及取消右键菜单等效果都是靠Fscommand指令在发挥作用。

Fscommand指令主要是用来控制Flash影片播放器的,但也可以用来打开其它的应用程序。

Fscommand指令只有在Flash影片播放器执行时才有效(.swf和.exe),在Flash制作过程中,按“Ctrl+Enter”预览动画,以及把动画发布成网页文件时,此指令无法发挥它的功能。

漫游动画的制作 3ds max教学教材

漫游动画的制作 3ds max教学教材漫游动画是一种通过3D建模软件来制作的动画作品,通过给予虚拟场景和角色生命,让其在视觉上更加逼真、有趣和引人入胜。

其中,3ds Max是一款功能强大的三维建模、动画和渲染软件,被广泛用于制作各种类型的动画作品。

本教材将介绍漫游动画的制作过程,并以3ds Max为工具,通过步骤式教学来帮助读者掌握制作漫游动画的基本技巧和流程。

第一章:介绍和安装3ds Max(200字)本章将向读者介绍3ds Max的基本信息和功能,以及如何安装和配置软件。

包括了软件界面的简单介绍,快捷键的使用等。

第二章:基础建模(400字)本章将详细讲解如何使用3ds Max进行基础建模。

包括了创建简单的几何体、编辑和变形几何体的方法,以及如何使用顶点、边和面进行建模等。

第三章:材质和纹理(400字)本章将介绍如何给建模物体添加材质和纹理,以及如何调整和优化其外观。

包括了使用材质编辑器进行材质设置、贴图的应用和调整等。

第四章:动画和控制器(500字)本章将教授如何给建模物体添加动画效果,使其在场景中进行各种动作。

包括了关键帧动画的创建、使用控制器实现更复杂的动画效果等。

第五章:灯光和相机(300字)本章将讲解如何设置灯光和相机,使其在场景中起到照明和拍摄的作用。

包括了不同类型灯光的使用和设置,以及相机的位置和视角调整等。

第六章:场景布置和渲染(400字)本章将教授如何将建模物体、动画、灯光和相机等元素组合在一起,形成完整的场景,并进行渲染输出。

包括了场景布置的技巧和注意事项,以及渲染设置和输出流程等。

第七章:导出和分享(200字)本章将介绍如何将制作好的动画导出成不同格式的文件,以及如何将其发布和分享给他人。

包括了导出格式的选择和设置,以及动画分享的方式和途径等。

通过本教材的学习,读者可以了解漫游动画制作的基本原理和方法,掌握3ds Max的基本操作和功能,以及如何通过软件创建出具有吸引力的漫游动画作品。

利用Flash的AS3.0代码制作3D旋转动画效果

利用Flash的AS3.0代码制作3D旋转动画效果效果演示:〖本教程着重于代码的编写,版本AS 3.0。

图形元件的制作不作讲解,请参看有关教程。

〗1、新建Flash文档,创建5 个图形,(或导入5张图片到库中)。

2、创建一个影片剪辑,1层为图片层2层为代码层。

在1层把5张图片分别放在5帧中,在代码层输入stop(); 如图:3、Ctrl + L 打开库,右键单击影片剪辑实例做链接,类名为:IconMenu 如图:4、返回场景1,图层1为背景层,图层2为代码层。

在图层1导入背景图片。

图层2输入代码:1. include "Math2.as"2. //图片容器3. var menu:Sprite=new Sprite();4. //使图标移动5. menu.x = 300;6. menu.y = 200;7. //注册事件侦听器8. menu.addEventListener(Event.ENTER_FRAME,moveMenu);9. this.addChild(menu);10. //椭圆在x 和y 轴上的截距11. var disx:Number = 200;12. var disy:Number = 10;13. //旋转速度14. var speed:Number = 0;15. initMenu(5);16. function initMenu(n:int) {17. for (var i:int; i<n; i++) {18. var mc:MovieClip = new IconMenu();19. //缩小图标20. mc.scaleX = mc.scaleY = .5;21. menu.addChild(mc);22. }23. }24. //事件侦听器函数25. function moveMenu(e:Event):void {26. //获取图标数27. var iconCount:int = menu.numChildren;28. //定义数组29. var depthArray:Array = new Array();30. //把360度平分31. var angle:Number = 360 / iconCount;32. for (var z:int; z<iconCount; z++) {33. //根据深度获取图标34. var mc:MovieClip = menu.getChildAt(z);35. //跳转到不同帧,来显示不同的图标36. mc.gotoAndStop(z+1);37. //设置图标的位置38. mc.x = cosD(speed + angle*z) * disx;39. mc.y = sinD(speed + angle*z) * disy;40. setProp(mc,"alpha");41. setProp(mc,"scaleX",.2,.7);42. setProp(mc,"scaleY",.2,.7);43. //保存图标到数组44. depthArray[z] = mc;45. }46. //重新设置图标的深度47. arrange(depthArray);48. speed += 2;49. }50. function arrange(depthArray:Array):void {51. //按照y坐标排序52. depthArray.sortOn("y", Array.NUMERIC);53. var i:int = depthArray.length;54. while (i--) {55. menu.setChildIndex(depthArray[i], i);56. }57. }58. function setProp(mc:MovieClip,prop:String,n1:Number = .5, n2:Number = 1):void {59. mc[prop] = ((mc.y + 2 * disy) / disy - 1) / 2 * (n2 - n1) + n1;60. }5、新建.as文档,保存名为:Math2.as (这个文档是进行三角函数的计算)输入代码:1. //角度转弧度2. function angleT oRadian(angle:Number):Number3. {4. return angle*(Math.PI/180);5. }6. //弧度转角度7. function radianT oAngle(radian:Number):Number8. {9. return radian*(180/Math.PI);10. }11. //计算正弦值12. function sinD(angle:Number):Number13. {14. return Math.sin(angleT oRadian(angle));15. }16. //计算余弦值17. function cosD(angle:Number):Number18. {19. return Math.cos(angleT oRadian(angle));20. }21. //计算反正切22. function atan2D(y:Number, x:Number):Number23. {24. return radianT oAngle(Math.atan2(y, x));25. }复制代码把fla文档与Math2.as 文档保存在同一目录下,进行测试。

Flash常用代码大全

}
注意要将网页中的flash的ID号命名为"links"
7、加入收藏夹
on (release) {
getURL("javascript:void window、external、AddFavorite('','网页');", "_self", "POST");
8、外部调用swf
on (release) {
2、用flash做那种弹出的小窗口
分两步:
给flash中的按钮加入如下action:
on (release) {
getURL ("javascript:MM_openBrWindow('newweb、htm','','width=600,height=100')");
}
在HTML页面的、、、之间加入下面的javascript代码、
Flash常用代码大全
1、用命令载入一个动画,我需要确定载入动画在画面中的位置,用什么语言来设置?
例如载入名为dd、swf的动画,我要确定这个动画的中心位置在(205,250),该怎么设置?
在要加载动画的那钟加入
loadMovie("dd、swf", "a");
a、_x=205;
a、_y=250;
您得先做一个空的MC起名叫"a",导入时,在右下角也起名为a
19、改变Frame流向命令
gotoAndPlay(frame) //跳到指定的画面并连续播放。
gotoAndStop(frame) //跳到指定的画面并停止播放。

flash常用脚本代码大全

FLASH脚本代码大全- Go to 跳转到指定的帧- Play 播放- Stop 停止- Toggle High Quality 在高画质和低画质间切换- Stop All Sounds 停止所有声音的播放- Get URL 跳转至某个超联结- FSCommand 发送FSCommand命令- Load Movie 装载影片- Unload Movie 卸载影片- Tell T arget 告知目标- If Frame Is Loaded ..判断帧是否被完全载入- On Mouse Event 鼠标事件。

其他Actions。

包括:- break 跳出循环- call 调用指定帧(一般喊有某个特定函数)- comment 注释- continue 继续循环- delete 删除一个对象(Object)中的变量- do while do while循环- duplicateMovieClip 复制MC- else 否则(与if联用)- else if 否则如果(与if联用)- evaluate 调用自定义函数(Function)- for for循环- for .. in 依次取得对象(Object)中的各个属性或者某个数组中的所有元素- FSCommand 发送FSCommand命令- function 声明自定义函数- getURL 跳转至某个超联结- goto 跳转到指定的帧- if 如果- ifFrameLoaded ..帧是否完全被载入- include 读入外部的ActionScript程序文件(.as)- loadMovie 装载MC- loadVariables 转载外部文件中的数据,这些外部文件可以是文本文件,或者是由ASP/CGI等脚本返回的文本值- on 鼠标事件的触发条件- onClipEvent MC的事件触发程序- play 播放- print 输出到打印机- removeMovieClip 删除MC- return 在函数(function)中返回一个值- set variable 设定变量值- setProperty 设定属性- startDrag 开始拖动- stop 停止- stopAllSounds 停止所有声音的播放- stopDrag 停止拖动- swapDepths 交换两个MC的深度- tellT arget 指定Action命令生效的目标- toggleHighQuality 在高画质和低画质间切换- trace 跟踪调试- unloadMovie 卸载MC- var 声明局部变量- while 当..成立时..- with 对..对象(Object)做..。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

package{import fl.controls.ColorPicker;import flash.events.*;import .*;import flash.display.*;import flash.sampler.NewObjectSample;import flash.text.*;import fl.containers.ScrollPane;import org.papervision3d.cameras.CameraType;import org.papervision3d.objects.primitives.Sphere;import org.papervision3d.view.Basic View;import org.papervision3d.materials.BitmapFileMaterial;import sliz.miniui.Button;import caurina.transitions.Tweener;public class mode3 extends Basic V iew{private var sphere:Sphere;private var material:BitmapFileMaterial;private var panoramas_array:Array=new Array();private var room_name:Array=new Array();private var x_point:Array=new Array();private var y_point:Array=new Array();private var guider:Array=new Array();//舞台长宽private var w:Number=1000;private var h:Number=900;//平面图的长宽,总的平面图的宽度private var panel_width:Number;private var panel_height:Number;//球体在XY轴上旋转地角度private var angleX:Number;private var angleY:Number;//功能按钮状态private var down:Number=0;//拖动球体是按下时鼠标的坐标private var downX:Number;private var downY:Number;//选择的房间号private var room_no:Number;//定义功能按钮//private var up_btn:Sprite=new Button("button1");private var up_btn:Sprite=new Button("向上");private var down_btn:Sprite=new Button("向下");private var left_btn:Sprite=new Button("向左");private var right_btn:Sprite=new Button("向右");private var zoomIn_btn:Sprite=new Button("放大");private var zoomOut_btn:Sprite=new Button("放小");private var previous_btn:Sprite=new Button("向下");private var next_btn:Sprite = new Button("向下");private var showhide_btn:Sprite = new Button("");//按钮数组private var buttons:Array=new Array();private var points:Array=new Array();//xml导入器private var xml_loader:URLLoader;private var dataXML:XML;//全景相关信息private var panel_image:String="";private var panoramas_image:String="";private var guide_image:String="";private var room_x:String="";private var room_y:String="";private var image_name:String="";//布局容器private var panel_image_container:ScrollPane=new ScrollPane();private var guide_image_container:ScrollPane=new ScrollPane();//显示房间名字的文本private var room_name_container:TextField;private var panel_room_name:TextField;private var formatter:TextFormat;//panel_image_container容器中的二级容器,在总图里的的链接private var point_container:Sprite;private var panelImg_loader:Loader;//总的楼房数private var totalhouse:Number;//选择的楼房private var house_number:Number=0;public function mode3(){//布置全景显示的位置super(800,390,false, false,CameraType.FREE);//第1、2个参数设置主画面的大小。

this.x=20;//左上角的起点坐标this.y=20;init();}private function init():void{initObj();//注册帧频侦听用于不断刷新屏幕this.addEventListener(Event.ENTER_FRAME,onEnterFrame);//拖动球体鼠标按下时注册侦听this.addEventListener(MouseEvent.MOUSE_DOWN,onDown);//拖动球体鼠标发开时注册侦听this.addEventListener(MouseEvent.MOUSE_UP,onUp);//设置全屏参数//stage.scaleMode=StageScaleMode.NO_SCALE;stage.align=StageAlign.TOP_LEFT;stage.scaleMode = StageScaleMode.SHOW_ALL;panel_image_container.alpha = 0.02;panel_image_container.addEventListener(MouseEvent.MOUSE_OUT, panelout);panel_image_container.addEventListener(MouseEvent.MOUSE_OVER, panelover);}private function initObj():void{//设置舞台背景var bg:Sprite=new Sprite()//new background2();bg.x=4;bg.y=4;stage.addChildAt(bg,0);panel_image_container.setSize(430,310);panel_image_container.x = 470;panel_image_container.y=20;stage.addChild(panel_image_container);guide_image_container.setSize(600,430);guide_image_container.x=20;guide_image_container.y=410;stage.addChild(guide_image_container);//设置按钮区的背景var uploda:Loader = new Loader();up_btn.addChild(uploda);uploda.load(new URLRequest("./image/shang.jpg"));up_btn.addChild(uploda);var download:Loader = new Loader();down_btn.addChild(download);download.load(new URLRequest("./image/xia.jpg"));var leftload:Loader = new Loader();left_btn.addChild(leftload);leftload.load(new URLRequest("./image/zuo.jpg"));var rightload:Loader = new Loader();right_btn.addChild(rightload);rightload.load(new URLRequest("./image/you.jpg"));var zoominload:Loader = new Loader();zoomIn_btn.addChild(zoominload);zoominload.load(new URLRequest("./image/fangda.jpg"));var zoomoutload:Loader = new Loader();zoomOut_btn.addChild(zoomoutload);zoomoutload.load(new URLRequest("./image/suoxiao.jpg"));var showhideload:Loader = new Loader();showhide_btn.addChild(showhideload);showhideload.load(new URLRequest("./image/showhide.jpg"));buttons.push(up_btn,down_btn,left_btn,right_btn,zoomIn_btn,zoomOut_btn); //排列按钮位置for(var i=0;i<buttons.length;i++) //buttons是按钮数组{//初始按钮排列、功能buttons[i].x=120+60*i;buttons[i].y=350;buttons[i].addEventListener(MouseEvent.MOUSE_DOWN,btnDown);buttons[i].addEventListener(MouseEvent.MOUSE_UP,btnUp);buttons[i].buttonMode=true;stage.addChild(buttons[i]);}showhide_btn.x = 820;showhide_btn.y = 20;showhide_btn.addEventListener(MouseEvent.MOUSE_DOWN, showhideDown);showhide_btn.buttonMode = true;stage.addChild(showhide_btn);//导入XMLxml_loader=new URLLoader();xml_loader.dataFormat=URLLoaderDataFormat.TEXT;xml_loader.addEventListener(PLETE,handleComplete);xml_loader.load(new URLRequest("xml/1wangxu_chunhui.xml"));}private function handleComplete(event:Event):void{try{dataXML=new XML(event.target.data);totalhouse=dataXML.building.length();if(dataXML.building.length()>0){change_map(0);}else{trace("xml中还未添加数据");}}catch(e:TypeError){trace(e.message);}}private function change_map(house_no:Number):void{scene.removeChild(sphere);//清房间点数组for(var i=0;i<x_point.length;i++){points.pop();}//获取房产信息panel_image=dataXML.building[house_no].panel_image;panoramas_image=dataXML.building[house_no].panorama_image;guide_image=dataXML.building[house_no].guide_image;room_x=dataXML.building[house_no].room_x;room_y=dataXML.building[house_no].room_y;panel_width=dataXML.building[house_no].panel_width;panel_height=dataXML.building[house_no].panel_height;image_name=dataXML.building[house_no].image_name;//填充平面图容器x_point=room_x.split(" ");//x_point y_point都是数组。

相关文档
最新文档