JPEXS Free Flash Decompiler Issue Tracker

If you are looking for the decompiler itself, visit https://github.com/jindrapetrik/jpexs-decompiler

NEW : You can now close your own issues and reopen them later if needed. You can also comment closed issues.
List of issuesList of issues

#2590 Decompilation and FLA export errors
Author:
Date created:
Type: bug
Visibility: Everybody
Assigned to:
Labels: AS1/2
State: closed Help

> What steps will reproduce the problem? Open com.clubpenguin.game.fish.FishingEngine; export to FLA. > What is the expected output? What do you see instead? Decompiles with a single error on line 235: §§push(this.gameOverEvent); Exporting to FLA and trying to publish with CS6 (after removing problematic line) produces many errors with "This statement is not permitted in a class definition." and "ActionScript 2.0 class scripts may only define class or interface constructs." > What version of the product are you using? Is it "nightly build"? Which operating system do you have? 24.1.1 > Please provide any additional information below. If the problem is related to a SWF file, attach it here, otherwise we can't help you. Tried diagnosing the issue but kind of at a loss, I don't know what could have produced the problematic bytecode. And my copy of CS6 doesn't even support targeting SWF v17.
DownloadIceFishing.swf (1,427 KiB)
I think in this case, it is enough to comment out the §§push(this.gameOverEvent) line like this: //§§push(this.gameOverEvent); I tried it with CS6 and it compiled successfully. The errors "This statement is not permitted in a class definition" were there only before commenting out, they disappeared after I commented out it and recompiled. If your CS6 cannot target SWF 17, then you can switch target FlashPlayer in document settings I guess.
State: new→opened
Well that was stupid, just needed to save the edited .as file which I forgot. I'm still not sure how that bytecode was produced (I couldn't replicate it trying various things in CS6). That variable isn't actually used for anything though.
Turns out it was quite simple, I probably didn't find it because I was forgetting to save the .as In a class file in CS6: function frame38() { this.stop(); gameOverEvent; this.isBigFishCaught = false; this.consecutiveFishCaught = 0; this.hasLostLife = false; this.totalFishCaught = 0; this.gameRunning = true; this.icepoint = 122; this.hookEmpty = true; this.hookPrevPos = this._ymouse; this.hookCurrPos = this._ymouse; this.hookisFalling = false; this.lives = 3; this.level = 1; this.levelBlock = false; this.fishCaught = 0; this.puffle._visible = false; this.oj.startGame(); this.sharkActive = false; this.crabActive = false; this.kickerLeftMove = false; this.kickerRightMove = false; this.lineisCut = false; this.startTime = getTimer(); this.timer = getTimer(); this.speedTimer = getTimer(); this.speed = 4000; if(this.grayFishMode == true) { this.lineExtra = 35; } else { this.lineExtra = 0; } } Decompiles to: function frame38() { this.stop(); this.isBigFishCaught = false; this.consecutiveFishCaught = 0; this.hasLostLife = false; this.totalFishCaught = 0; this.gameRunning = true; this.icepoint = 122; this.hookEmpty = true; this.hookPrevPos = this._ymouse; this.hookCurrPos = this._ymouse; this.hookisFalling = false; this.lives = 3; this.level = 1; this.levelBlock = false; this.fishCaught = 0; this.puffle._visible = false; this.oj.startGame(); this.sharkActive = false; this.crabActive = false; this.kickerLeftMove = false; this.kickerRightMove = false; this.lineisCut = false; this.startTime = getTimer(); this.timer = getTimer(); this.speedTimer = getTimer(); this.speed = 4000; §§push(this.gameOverEvent); if(this.grayFishMode == true) { this.lineExtra = 35; } else { this.lineExtra = 0; } }
Downloadthistest.swf (1 KiB)
Ok, thanks.
State: opened→closed