jonathanasdf

Serious Dabbler

Targeting Flash Player 10.2 with FlashDevelop 3

with 8 comments

EDIT: Nevermind – just build FlashDevelop 4 instead!

The official release of Flash Player 10.2 was announced yesterday together with the standalone 10.2 players, so I thought it was about time to figure out how to get FlashDevelop to compile to 10.2. A quick google only found a single post on how to achieve this, and it was a very crude workaround: what if I needed to juggle a couple of projects that compile to 10.1 and 10.2? I would need to rename the folder every time.

So, I thought, since FlashDevelop is open source I might as well tinker with the source code a bit and try to make it support this. And, as I have pretty much zero C# experience this would be a good time for me to learn some, as well as figure out more about how FlashDevelop works.

I noticed that FD4 seems to have proper support for 10.2, but I didn’t build it and test it, since it’s still alpha and I’d rather use the more stable FD3. The code for FD4 is also too different from FD3 so I couldn’t copy and paste, and so I ended up with this not quite as beautiful solution since it requires you to do something quite weird later.

Anyways, enough rambling. Here’s a guide on how to apply my patch to FD3 and start compiling for 10.2 in half an hour (time estimate does not include time needed to download and install programs).

Files:

The patch file. This patch was created at revision 1737.
You may also need this file if you experience compilation errors with ASDocumentation.

Guide:

This guide below is written for Windows users. If you use *nix you probably don’t need a guide anyways and can figure it out with the above files. If you use mac then I’m sorry I am not familiar with macs.

Required Programs:

  • An SVN client/tool. I personally use TortoiseSVN. Cygwin’s default installation should come with svn too.
  • Microsoft Visual Studio that can compile C# (VC# Express is free)
  • A program that can apply .patch files. TortoiseSVN has this capability, and Cygwin comes with patch as well.
  • FP10.2 Projector or Projector Content Debugger (you should also install the Plugin/AX controls if you want to run FP10.2 swfs in your browsers).
  • Flex Hero build 4.5.0.18623 or newer (if you want to still be able to publish to FP9, FP10.0, or FP10.1 I suggest you do not delete your current flex sdk)

Steps:

  1. Checkout FlashDevelop into any folder you wish. Note that this will NOT be the final location of the FlashDevelop program, but rather where the source files will be kept.
  2. When this is completed, apply the FD3__FP10_2_fix.patch file.
    • With TortoiseSVN, right click the patch file and choose TortoiseSVN->Apply Patch. Browse to the folder that contains the FlashDevelop code that you checked out, and when the popup shows click Yes. Then, right click the small window that says File patches… and select Patch all.
    • With Cygwin, well I’ve never used it before and the man page is really long… I’ll try working with it some time in the future but at this point I cannot give any help on this.
  3. Now open FlashDevelop.sln in your FlashDevelop checkout folder. On the top bar, where it says Debug, change it to Release, and beside it also change Any CPU to x86. Then, open the Solution Explorer (Ctrl+Alt+L), and scroll to the very top where it says Solution ‘FlashDevelop’. Right click that, and choose Rebuild Solution.
    • If you see a compile error that says something like “Newline in constant” then you will need to apply the other patch I linked to above.
    • If there are other errors try Rebuild Solution again, and if you get the same errors then you’re going to have to debug them.
  4. At this point we have finished building FlashDevelop so we need to copy it from /FlashDevelop/Bin/Debug/ to where you want the FlashDevelop application to reside. But we don’t want to copy the svn files so we need to do an svn export.
    • With TortoiseSVN, open one explorer window to /FlashDevelop/Bin/Debug and another window to where you want to move the files to. Select all the files and right-click-drag them to the new location. When you release the right mouse button a menu should pop up and you should select Export All Files Here.
    • With Cygwin, once again I’ve never used it so read ‘svn help export’ or something.
  5. If you want to, delete the .multi (multi-instance mode) and/or the .local (standalone mode) files.
  6. Copy the newly downloaded Flex Hero files and overwrite your old flex files. Navigate to flexsdk/frameworks/libs/player/ and make sure you have folders for all the versions you want to be able to publish to.
  7. Now here is why my patch was ugly. To make my patch work you need to rename flexsdk/frameworks/libs/player/10.2 to flexsdk/frameworks/libs/player/12.0 because I didn’t do that MajorVersion/MinorVersion stuff that FD4 does because it’s too much work. However, this is a one-time rename and will not cause any problems. If you expect to use another application to publish to 10.2 such as Flex Builder then instead of renaming it, create a copy and then rename the copy so you have both /10.2 and /12.0 in the folder.
  8. Copy the FP10.2 Projector and/or the Projector Content Debugger to wherever you want to. If you have Flash Professional installed a good place is probably /Adobe/Adobe Flash CSx/Players.
  9. Open up FlashDevelop and set the path to the flexsdk in AS3Context and make sure External Player Path in FlashViewer is pointing to the 10.2 projector.
  10. Create a project and compile to FP10.2! You just need to choose 10.2 from the Project Options. You do not need to add -swf-version=11 into compiler options. Code hinting and auto-completion should also work. This will be the only step you will need to do in the future.

Hope this helps some people until the FD team releases an official version that supports compiling to 10.2.

Advertisements

Written by jonathanasdf

February 9, 2011 at 11:55 PM

8 Responses

Subscribe to comments with RSS.

  1. Actually, you can just duplicate the 10.2 folder and rename it 10.1, so you have a folder for each. Of course, a real fix is better, but just wanted to point out that it doesn’t have to be renamed each time.

    bobthecoolguy

    February 10, 2011 at 1:05 PM

    • If you have the 10.2 folder named as 10.1, how are you supposed to publish for Flash 10.1 then? If you duplicate the 10.2 folder and rename it 10.1, sure you are going to have both the 10.1 folder and the 10.2 folder, but they will both contain the 10.2 playerglobal.swc and you will not be able to publish for 10.1 without doing another rename.

      jonathanasdf

      February 10, 2011 at 4:12 PM

      • If you target 10.1 but use the 10.2 swc, but don’t use any new classes, will it still run on 10.1, or not?

        bobthecoolguy

        February 11, 2011 at 3:16 PM

        • Hmm, I’m actually not sure :) I just assumed it wouldn’t, which is probably not a good thing to do (making assumptions that is).

          jonathanasdf

          February 13, 2011 at 12:41 PM

          • Using the 10.2 folder renamed as 10.1 on a project with only 10.1 classes seemed to run on FP 10.1 , but it could get messy I guess if they changed internal stuff also.

            bobthecoolguy

            February 13, 2011 at 3:49 PM

  2. You might as well build FD4 from SVN – it is usually pretty stable ;)

    Philippe

    February 13, 2011 at 2:19 AM

    • I tend to distrust things labelled “alpha” though, but yeah the option is there for those who only need things that are “pretty stable”.

      jonathanasdf

      February 13, 2011 at 11:05 AM

  3. Keep working ,fantastic job!

    trotz schufa eintrag

    October 6, 2011 at 6:05 AM


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s