package com.views
{ import flash.display.Bitmap;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event; /**
* @author:Frost.Yen
* @E-mail:871979853@qq.com
* @create: 2016-7-7 下午2:33:56
*
*/
public class LogoView extends Sprite
{
private var _stageW:Number = 1920;
private var _stageH:Number = 1080;
private var _mc:MovieClip = new MovieClip();
public function LogoView(bmp:Bitmap)
{
_mc.addChild(bmp);
bmp.x = -bmp.width*0.5;
bmp.y = -bmp.height*0.5;
initLogo();
} private function initLogo():void{ //随机位置
_mc.x = Math.random()*_stageW;
_mc.y = Math.random()*_stageH;
//随机速度和方向
Math.random()>0.5?_mc.speedX = Math.random()*5+1 : _mc.speedX = -1 * Math.random()*5+1
Math.random()>0.5?_mc.speedY = Math.random()*5+1 : _mc.speedY = -1 * Math.random()*5+1
//因为logo的坐标原点是logo的中心,所以用该函数用来调整logo位置,防止移出边界
adjustBall(_mc);
//添加logo到显示列表
addChild(_mc);
//用ENTER_FRAME侦听器使logo运动
//startMove();
} private function adjustBall(mc:MovieClip):void{
if(mc.x > _stageW-mc.width/2){mc.x = _stageW-mc.width/2;}
if(mc.x < mc.width/2){mc.x = mc.width/2};
if(mc.y > _stageH-mc.height/2){mc.y = _stageH-mc.height/2;}
if(mc.y < mc.height/2){mc.y = mc.height/2;}
} private function onEnterFrame(evt:Event):void{
//改变logo的坐标让小球运动
evt.target.x += evt.target.speedX;
evt.target.y += evt.target.speedY;
//检测logo是否碰到舞台边界
if(evt.target.x >= _stageW-evt.target.width/2 || evt.target.x <= evt.target.width/2){
evt.target.speedX *= -1;
}
if(evt.target.y >= _stageH-evt.target.height/2 || evt.target.y <= evt.target.height/2){
evt.target.speedY *= -1;
}
}
public function startMove():void
{
_mc.addEventListener(Event.ENTER_FRAME,onEnterFrame);
}
public function stopMove():void
{
_mc.removeEventListener(Event.ENTER_FRAME,onEnterFrame);
}
}
}

[ActionScript 3.0] AS3.0 对象在矩形范围随机运动的更多相关文章

  1. [ActionScript 3.0] AS3.0和AS2.0的相互通信

    AS3和AS2之间的通信,最好的方式可能就是LocalConnection了. AS2向AS3发送数据,即AS2调用AS3的函数: as2.0代码(按钮上写的发送信息代码): on (release) ...

  2. [ActionScript 3.0] AS3.0 让一个视频无缝循环播放的一个偏方

    一个视频要循环播放,通常的办法都是播放完后再重新播放,但是不可避免的播放结束和重新开始播放这个时间点上会有停顿,如何解决这个问题,说个偏方吧! package com.views { import f ...

  3. [ActionScript 3.0] AS3.0 下雨及涟漪效果

    帧代码: stage.frameRate = 80; function init(x1:Number,y1:Number) { var mc:MovieClip=new MovieClip(); ad ...

  4. [ActionScript 3.0] AS3.0 对象在一定范围随机显示不重叠

    import flash.geom.Rectangle; import flash.display.MovieClip; import flash.display.Sprite; var arr:Ar ...

  5. [ActionScript 3.0] AS3.0 本机鼠标指针

    Flash Player 10.2添加了内置的本机鼠标指针(native mouse cursor)支持,虽然在之前的版本里我们可以侦听MouseEvent事件来模拟鼠标指针,但是在有了原生的本机鼠标 ...

  6. [ActionScript 3.0] AS3.0 动态加载显示内容

    可以将下列任何外部显示资源加载到 ActionScript 3.0 应用程序中: 在 ActionScript 3.0 中创作的 SWF 文件 — 此文件可以是 Sprite.MovieClip 或扩 ...

  7. [ActionScript 3.0] AS3.0 涂鸦及擦除功能,撤销重做步骤记录实例

    package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BlendMo ...

  8. [ActionScript 3.0] AS3.0 简单封装Socket的通信

    Socket服务器 package com.controls.socket { import com.models.events.AppEvent; import com.models.events. ...

  9. [ActionScript 3.0] AS3.0 Socket通信实例

    以下类是充当Socket服务器的例子 package { import flash.display.Sprite; import flash.events.Event; import flash.ev ...

随机推荐

  1. Java类的成员函数调用顺序

    class A { public A() { System.out.println("----------A 构造-------------"); } static void sb ...

  2. C++不用任何算术运算符实现整数加法

    这本是careerup的一道题,看到了以后自己做了一下,主要的难点就是加法里面的进位.直接上代码: int add(int a, int b) { ; }; int first = a, second ...

  3. 怎么做一个bat文件

    怎么做一个bat文件 | 浏览:639 | 更新:2014-11-25 17:02 1 2 3 4 5 6 7 分步阅读 其实做一个.BAT文件很简单,下面我就以做一个清除系统垃圾.BAT文件为例,给 ...

  4. Xcode5 取消ARC

    终于开心的装上Xcode5,主管马上发布新的任务,开始新的项目,各种开心,终于可以换个界面看看了. 可是谁知第一步创建项目就开始悲剧了,居然没有地方可以选择非ARC了,真是肿么个情况呀,查了一下,万能 ...

  5. bcopy函数

    函数原型:void bcopy(const  void  *src,  void  *dest,  int  n) 头文件:#include <string.h> 函数功能:将src指针指 ...

  6. iOS 注释的5要3不要和编码规范的26个方面

    注释 代码注释,可以说是比代码本身更重要.这里有一些方法可以确保你写在代码中的注释是友好的: 不要重复阅读者已经知道的内容 能明确说明代码是做什么的注释对我们是没有帮助的. // If the col ...

  7. juqey.html(),text(),val()

    .html()用为读取和修改元素的HTML标签 .text()用来读取或修改元素的纯文本内容 .val()用来读取或修改表单元素的value值. 这三个方法功能上的对比 .html(),.text() ...

  8. JS form表单图片上传

    // 点击file 类型的input 触发的方法 function changesProvider(){ // fileProvider -> input中的name属性值 var f = do ...

  9. 上载android应用的apk文件变成了zip-网下转载的解决方案

    下载android应用的apk文件变成了zip--网上转载的解决方案 下载android应用的apk文件变成了zip--网上转载的解决方案 解决方案一. 最近把开发的android应用放在公司网站上, ...

  10. [专题汇总]AC自动机

    1.The 2011 ACM-ICPC Asia Dalian Regional Contest ZOJ 3545 Rescue the Rabbit  简单的AC自动机+状压DP, 状态DP[nod ...