If you are looking for the decompiler itself, visit https://github.com/jindrapetrik/jpexs-decompiler
NEW : We have got a new blog where we post some interesting SWF internals info.

#1298 Issue With Recompiling
Author:
vorta4

Date created:
Type: bug
Visibility: Everybody
Assigned to:
Labels: AS1/2Direct Editation
State: closed 

> What steps will reproduce the problem?
First, I decompile the attached SWF file. I make a modification to a script in frame 154
(just to one of the strings) and try to save my changes.
> What is the expected output? What do you see instead?
When I try to save my changes to the actionscript, the compiler gives me the error
"Invalid assignment on line 280". I did not modify any code on line 280. I have attached a
screenshot. The original flash program works fine, so I believe this may be an issue with
ffdec, although I cannot be sure. Is there some blatant mistake I am making?
> What version of the product are you using? Is it "nightly build"? Which operating system
do you have?
I am using ffdec 9.0.0 on a GNU/Linux distribution. I do not believe it is a "nightly
build."
> Please provide any additional information below. If the problem is related to a SWF
file, attach it here, otherwise we can't help you.
I have attached the swf file.


Yes, that's the problem in our AS1 compiler, we should fix it.
I can't give you any exact date when it will be fixed.
Anyway, thanks for reporting!
Is there any workaround?
You can edit P-code on right side instead - it has same powers as AS editation, but is
hard because you need to understand its syntax. For really simple edits like changing one
value, it's usable.
In the P-Code, I see lines such as:
loc29f1:Push "myx" "player" 0.0
Is there anything that should be known about the "loc" syntax? It seems that it refers to
a specific virtual memory address. Thank you for tolerating my ignorance.
No problem:
These are just labels.
Its some identifier followed by colon on the beginning of the line.
This means that there is jump to this location somewhere else in the code.
These label names must be unique. To achieve this - we generate their names from "loc" +
hex offset of the instructions. You can rename it to any identifier you want (you must
rename all places where its references), but when the code is saved, the actual label name
is not stored in the SWF file, thus it will be renamed to "locxxxx" after save/refresh.
The hex string after "loc" is not important at all - there's no need to handle it somehow
special or try correctly calculate it. If you insert line before the command, the label
will work. It just must be unique in the file, no matter how named.
I think somebody already asked this question in the past - we should definitely put it in
our FAQ.
Thank you.
This is fixed in nightly 1849.
State: new→upgraded
State: upgraded→closed