【发布时间】:2013-01-18 16:40:23
【问题描述】:
我有一个名为 doorKey 的键(如门)影片剪辑,它位于名为 visuals 的影片剪辑中。
通常当您在 AS3 上的时间线内而不是在包内时,您可以执行以下操作:
if (player.hitTestObject (visuals.doorKey))
如何在包中执行此操作?
研究: Reference MovieClip After it is Added to Stage as a Child
package
{
import flash.display.MovieClip;
import flash.events.*;
public class Test extends MovieClip
{
public var keyCollected:Boolean = false;
public var doorKey:Visuals = new Visuals();
public var visuals:Visuals;
public function Test()
{
visuals.x = 25;
visuals.y = 475;
addChild(visuals)
function loop(e:Event):void
{
if (keyCollected == false)
{
//trace("player "+player);
if (player.hitTestObject (doorKey))
{
doorKey.visible = false;
keyCollected = true;
trace("key collected");
}
}
【问题讨论】:
-
前 1 个不好的做法 - 嵌套函数
-
试图写一些东西来帮助你,但这一切都归结为......你需要学习类的核心概念,movieclips以及通过舞台连接事物的方式。此外,请尽量简洁地说明您要求的是什么以及事物之间的联系方式。我们不知道是什么创建了“测试”,何时触发循环以及触发它的是什么。我们不知道 Visuals 是什么样子以及为什么将其设置为 pos(25, 475)。我们也不知道玩家长什么样,它在什么范围内,当你运行游戏时会发生什么,以及你期望发生什么......
标签: actionscript-3 flash movieclip