在flex中,roation是以注册点为中心的,而一般我们的元件都是默认以左上角为注册点,而用代码是无法改变它的注册点的,平常项目中,常常需要将元件以指定位置为中心进行旋转,这一篇的小例子,是一张图片绕中心点进行旋转。
其实原理很简单,将图片添加到一个SPRITE容器中,而它的坐标,是(1-img.width)/2,和(1-img.height)/2;这样旋转外面的SPRITE,里面的图片看起来正好就像是以图片为中心在旋转。
第二篇,将介绍一下用matrix来指定任意位置进行旋转。
代码如下:
package
{
import flash.display.Bitmap;
import flash.display.DisplayObject;
import flash.display.Loader;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.TimerEvent;
import flash.geom.Matrix;
import flash.net.URLRequest;
import flash.utils.Timer;
/**
* 图片旋转
* @author hacker47
*/
public class Main2 extends MovieClip
{
private var loader:Loader;
private var url:String = "1.jpg";
private var bitmap:Bitmap;
private var imgBox:Sprite;
public function Main2()
{
if (stage) init();
else
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void {
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
loader.load(new URLRequest(url));
}
private function onComplete(e:Event):void {
bitmap = e.target.content as Bitmap;
imgBox = new Sprite();
//imgBox.graphics.clear();
//imgBox.graphics.lineStyle(1, 0, 1);
//imgBox.graphics.drawRect( -50, -50, 100, 100);
addChild(imgBox);
bitmap.x = 0- bitmap.width/ 2;
bitmap.y = 0- bitmap.height/ 2;
imgBox.addChild(bitmap);
bitmap.cacheAsBitmap = true;
imgBox.x = stage.stageWidth / 2;
imgBox.y = stage.stageHeight/ 2;
stage.addEventListener(MouseEvent.MOUSE_MOVE, running1);
}
private function running1(e:MouseEvent):void {
var dy:Number = Math.round(mouseY) - (imgBox.y);
var dx:Number = Math.round(mouseX) - (imgBox.x);
imgBox.rotation = Math.atan2(dy, dx) * 180 / Math.PI;
}
}
}
- 大小: 51.9 KB
分享到:
相关推荐
2.可自定义控制类型,自定义限制等比缩放,x轴移动,y轴移动,x轴缩放,y轴缩放,x轴斜切,y轴斜切,是否可旋转,是否可设制中心点; 3.增加了undo,redo功能,可自由控制回退和重做,也可以清除操作记录; 4.增加...
需要掌握的基础: * ActionScript 3.0编程基础 * 空间立体几何与三角函数基础 * 了解物体的运动规律 使用的开发工具: ...3,利用第一点的属性,在第二点的渲染能力之内尽可能地修饰粒子的显示效果。
渲染图片是一个大的分支,十分重要而且很常用,所以,今天的教程是...基本的想法是,我们要把帆布按照一个中心点旋转,旋转画布,然后把画布回到原来的位置。如果你有一些经验关于图形引擎,那么这听起来应该很熟悉。代码大
matlab中拟合中心线的代码关于OrX程序的注意事项: 最初由SR Kiihne撰写,2004年2月24日 定向的MAS nmr光谱 我最初是在来自Bruker实验的光谱上对此进行测试的:jr0203#22-26这些是31P MAS光谱,其自旋速率为500-...
这种方法选择某一图层上的要素,其中心点落在另一图层要素中。 完全在…内(Are completely within) 这种方法选择完全落在另一图层多边形内部的某一图层上的要素,例如,选择林区里面的湖泊。通过指定一个缓冲...
方块的造型在旋转的时候存在一个公式,当然首先要判断是否满足旋转的要求,以上是一个长条型由横着变成竖立状态的旋转,我们以它的造型中的第三个小方块n(3)为中心旋转,这样,在开始运动的时候,长条形要发生旋转...
8 3DORBLT 3DO 三维动态旋转 9 3DPAN 三维视图平移 10 3DPLOY 3P 绘制三维多段线 11 3DSIN 插入一个3DS文件 12 3DSOUT 输出图形数据到一个3DS文件 13 3DSWIVEL 旋转相机 14 3DZOOM 三维视窗下视窗...
her he【他】,r【围绕】→女人是附庸,总是围绕着男人转,所以围绕着他转的是宾格的她,他是她的中心 《注意:现在说明一个最重要的规律:绝大多数的单词的核心意思在于他的第一个字母或第一个辅音字母组合,而后面...
连接相机和镜头,旋转到位。连接三条电缆到相机上,如上图,从上 到下分别是以太网电缆、光源电缆和供电电缆。 Connect the lens to the camera firm. Connect 3 cables to the camera shown as the above image. ...
C#(WINFORM)学习 一、 C#基础 基础 类型和变量 类型和变量 类型 C# 支持两种类型:“值类型”和“引用类型”。值类型包括简单类型(如 char、int 和 float 等)、枚举类型和结构类型。引用类型包括类 (Class)类 ...
//旋转图像,pOrigDib为原图,(nXCenter,nYCenter)为旋转中心的坐标,fTheta为旋转角度 void MirrorX(CDib* pOrigDib, int x, int y, int nWidth, int nHeight); //垂直方向的镜像变换,(x,y)为起始点,nWidth,...