* mascot.y = mouseY - clickOffset.y; * } * }
* 测试影片,用鼠标点击这个影片然后从不同点拖拽,看一下这个 clickOffset 是怎么样 处理的。
* 另外,也可以用 startDrag() ,stopDrag()方法实现开始停止拖拽过程,代码如下: *
mascot.addEventListener(MouseEvent.MOUSE_DOWN,
startMascotDrag);
* stage.addEventListener(MouseEvent.MOUSE_UP, stopMascotDrag); *
* function startMascotDrag(event:MouseEvent):void * {
* mascot.startDrag(); * }
* function stopMascotDrag(event:MouseEvent):void * {
* mascot.stopDrag(); * }
* 上面代码可以实现前面相同的效果。 ******
**15--碰撞检测.txt
***** **
FLASHAS3.0—碰撞检测 (17) 2.4.3 碰撞检测
* 在游戏中, 当有很多对象在屏幕上移动时, 检测他们之间的相互碰撞是非常有用的。
* AS3.0 包含两个碰撞检测函数,hitTestPoint 函数用于检测某个点与显示对象间是否 发生了碰撞;hitTestObject 函数用于检测两个显示对象间是否发生了碰撞。
* 具体来说,用 hitTestObject 函数作为影片的方法时,要将另一个影片的引用作为参 数传入,格式如下: * sprite1.hitTestObject(sprite2)
* 如果两个影片发生了碰撞则返回 true,否则,返回 false。但是这种检测方法的精度 很低,主要用来检测矩形影片的碰撞;hitTestPoint 函数用来检测两个影片是否相碰时,需 要先定义两个 Number 类型的参数,作为检测点。根据影片是否与该点相交,返回 true 或者 false。另外第三个参数为可选参数,其值为 boolean 类型,默认为 false,检查影片的边框是 否与该点相碰;如果设置为 true 的话,则用来检查影片的实际形状与该点是否相碰。
* 下面,我们通过一个实例来验证这两个函数的使用方法,首先,在舞台上绘制两个动 态文本,分别命名为 messageText1,messageText2;然后再绘制一个月牙形,一个星形影片 剪辑,实例名称分别为 crescent,star。代码如下:
* addEventListener(Event.ENTER_FRAME, checkCollision); * function checkCollision(event:Event) * {
* // 检测鼠标指针是否与月牙形影片相碰
* if (crescent.hitTestPoint(mouseX, mouseY, true)) * {
* messageText1.text = \* } else * {
* messageText1.text = \* }
* // 把星形坐标作为鼠标跟随 * star.x = mouseX; * star.y = mouseY; *
* // 检测星形与月牙形是否相碰 * if (star.hitTestObject(crescent)) * {
* messageText2.text = \* } else * {
* messageText2.text = \
* } * } ******
**16--外部变量.txt ***** **
FLASHAS3.0—外部变量(18) 2.5 访问外部数据
* 有时候访问游戏的外部信息是非常必要的, 比如我们在游戏中需要访问或加载外 部网页或文本域内的参数,或者把相关的信息保存为本地文件。 * 2.5.1 外部变量
* 假如你有一个游戏是根据一些选项来改变的。 例如, jigsaw puzzle 游戏运行时需要 在 加载不同的图片, 或者一个 arcade 游戏以不同的速度运行。 你可以从 flash 影片所在的 HTML 页面中获取一些参数。在这里有多种方法能够实现,如果你在发布设置中默认 HTML 为模 板的话,就可以通过 AC_FL_RunContent 函数中的 flashvars 属性来传递参数。
* 下面是一个简短的 AC_FL_RunContent 函数, flash cs3 导出影片后, 在 你可以在 html 文件夹中发现这些代码。在这里我增加了 flashvars 参数
*

