Download

Suddenly lost ability in ActionScript to call function in object from root timeline

This is maddening. I’ve spent the entire day on this. It was working fine before. But in one of my swfMovie files, I have lost the ability to call an object’s function from the root timeline. But only in-game. It appears to work fine from inside the Scaleform launcher. And it’s not just one object. All of the objects on the stage seem to have their functions suddenly inaccessible when I try to call them from the root timeline. Has this ever happened to any of you? How did you get past it?

I finally worked something out. I can’t believe how much time I spent on this, when everything was working fine day before yesterday.

I discovered that I couldn’t reference any properties of a symbol on the stage if it was embedded inside another symbol. So for example, I couldn’t change portraitFrame.characterInfo.characterName.text from the root timeline. But I could set up a chain of functions that would call portraitFrame.changeName(), which calls characterInfo.changeName(), which can set characterName.text.

You should be able to update nested symbols from any root scope (although I would never advise doing that).

Did you perhaps set these params to private within their classes?

Thanks, yeah, I checked on that. There’s nothing private. I have no idea why everything suddenly stopped working. It’s crazy.

@Nathaniel3W Have you tested reverting to an older version, to test that the issue was not introduced by a windows update?

@Coldscooter I haven’t tried that. I really hope that’s not what caused the issue. I realized that I hadn’t been saving my fla files in git, so I couldn’t revert those files. (That’s a near-disastrous mistake that I thankfully caught before it destroyed my entire UI system.) But if it’s a Windows issue, then I’m probably going to see this happening in all of my published swf movies from now on, and it’s going to be a nightmare tracking down every nested symbol in every file. I’ll let you know if I see this happening in any other files.