package
{
import flash.events.Event;
import flash.geom.Matrix;
import flash.geom.Point;
import flash.display.*;
/**
* ...
* @author ongsh
*/
public class Main extends Sprite
{
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
var s1:Shape = new Shape();
s1.graphics.lineStyle(0);
s1.graphics.beginFill(0);
s1.graphics.drawRect(0, 0, 100, 100);
s1.graphics.endFill();
s1.x = 200;
s1.y = 200;
addChild(s1);
var s2:Shape = new Shape();
s2.graphics.lineStyle(0);
s2.graphics.beginFill(0xff0000);
s2.graphics.drawRect(0, 0, 100, 100);
s2.graphics.endFill();
s2.x = s1.x;
s2.y = s1.y;
addChild(s2);
var angle:Number = 45;
centerRotate(s2, angle);
centerRotate(s1, 10);
centerRotate(s2, 60);
}
/**
* 绕中心点旋转
*
* @param mc 元件
* @param angle 角度
*/
public function centerRotate(mc:DisplayObject,angle:Number):void
{
var currentRotation:Number = mc.rotation;
//获取mc不旋转时候的尺寸
mc.rotation = 0;
var mcWidth:Number = mc.width;
var mcHeight:Number = mc.height;
mc.rotation = currentRotation;
//获取mc当前中心点坐标
var pointO:Point = mc.localToGlobal(new Point(mcWidth / 2, mcHeight / 2));
//旋转mc
mc.rotation = angle;
//获取mc旋转后中心点坐标
var pointO2:Point = mc.localToGlobal(new Point(mcWidth / 2, mcHeight / 2));
//平移到原来中心点O
var p3:Point = pointO.subtract(pointO2);
var matrix:Matrix = mc.transform.matrix;
matrix.translate(p3.x, p3.y);
mc.transform.matrix = matrix;
}
}
}
分享到:
相关推荐
- 移动椭圆的中心点到合适的位置,以便后续旋转操作更加流畅。 - **目的**:通过调整图形的位置和形状,使其更适合旋转动画的效果。 ##### 步骤 4:创建旋转图形 - **操作方法**: - 在“变形面板”上设置“旋转...
在描述中提到的“环绕中心节点变换”,可能是指随着鼠标的移动,线条围绕一个中心点旋转或改变形状,增加了动画的动态性和趣味性。 实现这样的效果,我们需要掌握以下几个关键点: 1. **事件监听**:利用`...
- **本地存档**:作者提到下一个教程会涉及本地存档的RPG游戏,这提示我们可以考虑在游戏中加入保存进度的功能,让用户能够在多次游玩中持续提升自己的成绩。 - **难度调整**:通过设置不同的速度选项(慢速、中速、...
接下来,通过设置旋转角度为45度并在“变形”面板中点击“重制选区和变形”按钮多次,可以复制并旋转红色正圆形,形成太阳的辐射状效果。 在图层1的上方创建新的图层3,用于绘制太阳的眼睛。使用椭圆工具画出黑色正...
4. **数学和几何**:为了正确地排列图片以形成蜂窝状结构,开发者需要应用一些几何和数学知识,例如计算六边形的中心点、边长以及相邻六边形之间的关系。 5. **事件监听**:通过监听鼠标点击或其他用户交互事件,...
- **元件**:预定义的图形或动画片段,可在文档中多次重复使用。 - **实例**:元件在文档中的具体出现。 - **帧**:动画序列中的单个图像。 - **关键帧**:含有新数据的帧,用于定义动画的状态变化。 - **空关键帧**...
打乱功能则通过随机调用旋转函数多次实现。 #### 五、系统设计与实现 系统设计分为总体架构规划、三维图形子模块设计、整体翻转子模块设计、各层旋转子模块设计等多个环节。在实现过程中,重点在于DirectX库的引入...
【FLASH基础教程笔试作业知识点详解】 1. 选取工具:在Flash中,选取工具包括选择工具(V)、部分选择工具(A)和套索工具。这些工具用来选择、移动、调整对象。 2. 橡皮擦工具:使用橡皮擦工具的“擦除封闭填充”...
在Flash中,虽然内置的粒子系统不支持ActionScript直接控制,但我们可以通过自定义类来模拟粒子生成和行为,比如光线断裂成多个小光线,每个小光线有自己的运动轨迹和衰减速度。 5. **交互性**:将光线效果与用户的...
* 选取任意变形工具,选中元件 1,把元件 1 的中心点移到直线的端点上 * 选中直线,按 Ctrl+T 调出变形面板,选中旋转按钮,在旋转角度中输入 60,连续单击 5 次“复制并应用变形”按钮 * 选中所有直线,按 Ctrl+B ...
这通常需要计算每个泡泡的中心点和半径,然后判断它们之间的距离是否小于两倍半径。 6. **事件监听**:为了增加互动性,可以添加鼠标事件监听,例如当用户点击泡泡时,泡泡破裂或者改变颜色。通过`addEventListener...
方块的造型在旋转的时候存在一个公式,当然首先要判断是否满足旋转的要求,以上是一个长条型由横着变成竖立状态的旋转,我们以它的造型中的第三个小方块n(3)为中心旋转,这样,在开始运动的时候,长条形要发生旋转...
可以运用多种投影(正平行投影、斜平行投影、中心投影)方式显示,可以多视图显示(主视图、左视图、顶视图等),可以把被遮挡的线自动显示为虚线,可以对每一个物件添加材质属性,可加灯光效果、彩色贴图,自然...
- IMG_sobel:再次提及sobel边缘检测算法,说明在处理图像的边缘检测过程中,可能需要多次应用该算法以获取更好的边缘信息。 3. 系统配置与编译选项: 文档还展示了在项目编译过程中如何设置编译器选项,例如预...
13. **compound die 合模**:将多个模具组合在一起,实现一次性完成多道工序的技术。 14. **die locker 锁模器**:用来固定模具的装置,确保模具在工作过程中不会移动。 15. **pressure plate = plate pinch 压板**...