ruffle icon indicating copy to clipboard operation
ruffle copied to clipboard

The problem of not being able to paint in the coloring game.

Open jmousy opened this issue 4 years ago • 2 comments

Describe the bug

I'm having two problems with the Halloween Coloring Game (I don't know the exact game name).

  1. The following messages are displayed indefinitely in the developer console window.
Cannot enumerate Undefined
clearInterval: Timer 0 does not exist

image

  1. The wrong coloring effect appears when you click anywhere on the screen, and you cannot proceed further (e.g., coloring, opening menus, changing colors). It is explained in the attached gif below:

halloween

halloween.zip

Is the problem with the Ruffle desktop app, extension, or self-hosted version? Checked in self-hosted version.

What platform are you using?

  • Windows 10 20H1 x64
  • Google Chrome (latest)
  • Ruffle Nightly 2021-04-25

jmousy avatar Apr 25 '21 11:04 jmousy

1- These messages are just indicating the file is doing something wrong - but nothing critical. For instance, clearInterval(home.quick); is called every time you click but there's nothing that sets the interval (like home.quick = setInterval(...);) in the file.

2- It looks like this issue has been fixed by #4584 and the implementation of _droptarget.


However the file still doesn't work properly when coloring too quickly. _droptarget doesn't return expected values sometimes. The issue is in \frame 1\DoAction_2:

home.onMouseDown = function()
{
   clearInterval(home.quick);
   var dt = eval(home.draggy._droptarget);
   trace(dt);
   for(var i in cLink)
   {
      if(dt == cLink[i])
      {
      // ...
               var loopy = cLink[i].ref;
               var dt2 = cLink[i].ref;
               trace("loopy = " + loopy);
      // ...

In Flash Player, dt either traces:

  • _level0.valid.instanceNN.
  • _level0.valid: in this case, nothing happens when the loop iterates as the if statement never evaluates to true.

In Ruffle, dt either traces:

  • _level0.valid.instanceNN.
  • _level0.valid.maskerNN: in this case, nothing happens when the loop iterates, though the if statement evaluates to true and loopy returns undefined.
  • _level0.valid.masker (actually _level0.valid.maskerundefined): in this case, Ruffle crashes.

Toad06 avatar Jan 31 '22 13:01 Toad06

I can still reproduce this. Ruffle still crashes with a stack overflow when coloring too quickly.

Lord-McSweeney avatar Dec 09 '25 19:12 Lord-McSweeney