转到 Action Script 3.0 中的下一帧

发布于 2024-12-08 11:05:58 字数 727 浏览 0 评论 0原文

我在使用 AS 3.0 时遇到问题 当你点击一扇门时。您将移至下一帧。 在下一帧中我尝试了同样的操作。但它不起作用。

这是代码:

FRAME1;

stop();

deur1.addEventListener(MouseEvent.CLICK, frame2);
function frame2(event:MouseEvent)

    {
gotoAndStop(2)
        }// This part works. I am now in frame 2.

帧2:

deur2.addEventListener(MouseEvent.CLICK, frame3);
function frame3(event:MouseEvent)

    {
gotoAndStop(3)
        }

deur1=门1。 deur2=门2
门是一个按钮。 当我运行这个项目时。我所看到的只是每个 FPS 的所有帧。

这是我得到的编译错误: 编译错误

场景 1,层“layer1” 帧 2,第 1 行:1023 不兼容覆盖

场景 1,层“layer1” 帧 2,第 1 行:1021 重复的函数定义。

场景 1,层“layer1”帧 2,第 3 行:1000 对第 2 帧的引用不明确

MainTimeLine,第 2 行:1000 对第 2 帧的引用不明确。

I am having a problem with AS 3.0
When you click on a door. You'll move to the next frame.
In the next frame i tried the same. But its not working.

This is the code:

FRAME1;

stop();

deur1.addEventListener(MouseEvent.CLICK, frame2);
function frame2(event:MouseEvent)

    {
gotoAndStop(2)
        }// This part works. I am now in frame 2.

FRAME2:

deur2.addEventListener(MouseEvent.CLICK, frame3);
function frame3(event:MouseEvent)

    {
gotoAndStop(3)
        }

deur1=door1. deur2=door2
The doors are a Buttons.
When i run this project. All i see are all my frames for each FPS.

This is the compile error i get:
Compile errors

Scene 1, layer 'layer1' Frame 2, line 1: 1023 Incompatible override

Scene 1, layer 'layer1' Frame 2, Line 1: 1021 Duplicate function definition.

Scene 1, layer 'layer1' Frame 2, Line 3: 1000 Ambiguous reference to frame2

MainTimeLine, Line2: 1000 ambiguous reference to frame2.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

咆哮 2024-12-15 11:05:58

由于您使用的函数名称,您会收到这些编译错误。看来“frame2”和“frame3”是保留名称。尝试为您的函数使用更具描述性的名称,它将帮助您(和其他人)理解您的代码,这样您就不太可能遇到此类错误。

试试这个(我还更正了格式以提高可读性):

在第 1 帧上:

stop();

deur1.addEventListener(MouseEvent.CLICK, go_to_frame2);

function go_to_frame2(event:MouseEvent):void
{
  gotoAndStop(2)
}

在第 2 帧上:

deur2.addEventListener(MouseEvent.CLICK, go_to_frame3);

function go_to_frame3(event:MouseEvent):void
{
   gotoAndStop(3)
}

You get those Compile errors because of the names you are using for the functions. It seems "frame2" and "frame3" are reserved names. Try to use more descriptive names for your functions, it will help you (and others) to understand your code, and this way you are less likely to run into errors like these.

Try this (I also corrected the formatting to improve readability):

On frame 1:

stop();

deur1.addEventListener(MouseEvent.CLICK, go_to_frame2);

function go_to_frame2(event:MouseEvent):void
{
  gotoAndStop(2)
}

On frame 2:

deur2.addEventListener(MouseEvent.CLICK, go_to_frame3);

function go_to_frame3(event:MouseEvent):void
{
   gotoAndStop(3)
}
深海不蓝 2024-12-15 11:05:58

为什么不开发更多通用函数呢?如果您在第一帧中声明了这些函数,那么您可以从其他帧访问它们。像这样:

// Frame 1
function goPrevFrame(event : MouseEvent) : void
{
    nextFrame(); // or gotoAndStop(currentFrame +1);
}

function goNextFrame(event : MouseEvent) : void
{
    prevFrame(); // or gotoAndStop(currentFrame -1);
}

stop();
deur1.addEventListener(MouseEvent.CLICK, goNextFrame);

// Frame 2
stop();
deur2.addEventListener(MouseEvent.CLICK, goNextFrame);

// Frame 3
stop();
deur3.addEventListener(MouseEvent.CLICK, goNextFrame);

要记住的一件事是,您不会删除任何事件侦听器,因此您应该使用弱引用。

deur3.addEventListener(MouseEvent.CLICK, goNextFrame, false, 0, true);

有关动作脚本侦听器中弱引用的说明

Why not make more generic functions? If you have declared the functions in your first frame, then you can access them from other frames. Like this:

// Frame 1
function goPrevFrame(event : MouseEvent) : void
{
    nextFrame(); // or gotoAndStop(currentFrame +1);
}

function goNextFrame(event : MouseEvent) : void
{
    prevFrame(); // or gotoAndStop(currentFrame -1);
}

stop();
deur1.addEventListener(MouseEvent.CLICK, goNextFrame);

// Frame 2
stop();
deur2.addEventListener(MouseEvent.CLICK, goNextFrame);

// Frame 3
stop();
deur3.addEventListener(MouseEvent.CLICK, goNextFrame);

One thing to keep in mind is that you are not removing any of the event listeners, so you should use weak references.

deur3.addEventListener(MouseEvent.CLICK, goNextFrame, false, 0, true);

Clarifications regarding weak references in actionscript listeners

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文