Facebook ActionScript 3 API not working in FlashDevelop - actionscript-3

I am writing a little test program, and I have a problem regarding the ActionScript 3 Facebook API (Graph_API_Web_1_8_1.swc).
I am using FlashDevelop, and I correctly added the SWC file to the "lib" folder.
I also imported the Facebook API correctly in my class file (the auto-finish function of FD recognizes all code from there).
BUT, once I start compiling my code, I get the following error:
Error: Access of undefined property Facebook
for each line of code, that includes a Facebook call (such as Facebook.init(...), Facebook.login(...) and Facebook.logout(...)).
I added a screenshot of my FlashDevelop setup to clarify things:
This is even more mysterious to me, since the AIR application with the FacebookDesktop API is running without any errors.
How do I fix this problem?

This has happened to me several times. Don't waste your time looking into which ActionScript 3 SDK SWC version or Flex SDK you are using. It's just a weird bug. Instead, do the following.
Close FlashDevelop
Create a completely new project
Add the Facebook SWC to library
Then it should work. If not, reboot. It happened to me several times. I hope this helps.

Related

MissingManifestResourceException on Windows Phone 8.1 with .resx resources

I'm developing a Windows Phone 8.1 app that also targets Android(Xamarin)
As ever I added my string resources(.resx) on a PCL and referenced them on my launcher project to use it on my views, this all works fine on WP 8.1 silverlight but on the WinRt when I configure the project to release and run it on a device, for some reason I always get a MissingManifestResourceException. I've tried every solution for this problem out there without any success.
Note that on the emulator everything works fine, when the solution configurator is set to Debug it also works on both device and emulator. The only combination here is device and Release.
The app source code is on Github.
I was able to create a simple project to replicate this issue, basically it is a WP 8.1 app and a PCL project with the embedded resources, Download Link
Anyone has any ideas?
EDIT: After making some more testing I tried running an old Windows 8.1 app that I've done with the same localisation model and the same issue appeared so it seams to be a tool issue and not a configuration issue, since the Windows 8.1 app is on the market and everything went fine back there.
Our team ran into a similar issue which was tracked down to the runtime and not the PCL, WinRT component, or application package. That is, the resources exist within the PCL assembly, within the application package resources.pri file, but just cannot be found at runtime.
There is an active Microsoft Connect report here:
https://connect.microsoft.com/VisualStudio/feedback/details/991028/issue-using-resx-files-on-winrt-apps-windows-phone-and-windows
Our workaround was for the WinRT component to inject into each generated Resources class of each referenced PCL our own derived ResourceManager which redirected the call to the WinRT ResourceLoader instead. I've written a blog post that describes that workaround:
http://blogs.msdn.com/b/philliphoff/archive/2014/11/19/missingmanifestresourceexception-when-using-portable-class-libraries-in-winrt.aspx
I got to the bottom of this today. While bundling the app package, resources in dependencies that are not for a language being used by the app are stripped out. To prevent this from happening, add the following assembly-level attribute to your application.
using System.Resources;
[assembly: NeutralResourcesLanguage("en")]
I had the same behaviour. Today I created a new PCL Library (with another name) and copied the resx file to this project. I modified all references and everything just works fine in my WinRt (Windows Store) App now!
There was the string 'resources' in the portable class library name. Perhaps this was the problem!
I am able to reproduce this issue launching DVD sample and unfortunately in my project. I have an WP Silverlight 8.1 project registering a Windows Runtime Component Background Task and both of them using a Portable Class Library sharing some common localized strings as resources (.resx), among other things. The exception is thrown from Background Task when calling any property to get strings on generated .Design.cs class (only Release + Device).
In order to fix this I tried, without success, to use directly ResourceManager and/or to add .resx files directly into the Background Task.
I ended-up porting needed strings to .resw files and use the new "WinRT preferred" way via Windows.ApplicationModel.Resources.ResourceLoader in the Background Task project.
Seems to me that ResourceManager is not compatible with Windows Runtime anymore in release.
This is not necessary an answer, but is better than nothing since I do not have 50 reputation points for a comment.

Is it possible to add Native Extensions to Actionscript Library projects?

I've got an ActionScript Library project which is shared between an ActionScript and an ActionScript Mobile project. It works nicely for sharing everything I need in the two projects, but I'd now like to share an Adobe Native Extension between the two projects.
There's a 'Native Extensions' tab for adding them on the [ActionScript Build Path] screen in both the AS and AS Mobile projects, but not the ActionScript Library project.
I tried adding the ANE via the 'Add SWC' dialog on the [Build Path] screen in the Library project (there is a filter for *.ane on the file browser), but the project then failed to run with a VerifyError: Error #1014: Class myANE could not be found.
Does anyone know if it is possible to add ANEs to ActionScript Library projects, or can they only be added directly to ActionScript or ActionScript Mobile projects?
Many thanks in advance for any advice.
Not in Flash Builder, no. You can do it in IntelliJ (I am in the middle of trying to make the switch right now and that has been a fantastic feature so far). If your ANE is open source, as quite a few are, it is likely the SWC used by the dev to compile the ANE is included in the source code, or you could generate yourself. The SWC is the only portion of the ANE required to compile any kind of AIR app or library. You'll have runtime errors if you don't include the ANE in the app, but that is a given regardless.
So if you have the SWC or can compile one, add that as an external library to your project.

LWJGL Sound manager issue

I have been working on the Asteroids Game example code that they give in the tutorials section of the wiki and I ran into a strange error.
The code works just fine in my development environment, Eclipse. The game runs without error and exits normally.
I go through the export process in the file menu and create an executable jar that when run with this batch file code
java -Djava.library.path=D:\Tools\lwjgl-2.8.4\lwjgl-2.8.4\native\windows -jar SpaceInvaders.jar
Starts the display and the fails when it trys to load a wav file. Giving this error.
Exception in thread "main" java.lang.NullPointerException
I traced to where in the code this is happening and it is at the location where the wavs are being loaded. Apprently outside of the environment it can't locate the files even though they are right next to the code? All my wav files and gif files are just in the same directory as the java class files right now so calling them from the code looks likes this:
http://i.imgur.com/2gnN1.png
Searching for stuff on google it tells me to zip them into a seperate file and then import to the class folder and refrence from there. I was wondering if there was a way to keep the files inside my main jar file instead of having to create a seperate entity.
Thanks for the replys! Let me know if more information is needed.
You may want to consider using a higher-level API, such as the 3d soundsystem from paulscode. SoundSystem can read from inside the jar(like you are asking), and automatically switch to java sound if LWJGL sound isn't supported on the current hardware.

How to set up MonsterDebugger and FlashDevelop?

I'm trying to follow directions given by MonsterDebugger I've linked the SWC, added the code. Then built the project.
The last thing they say: "Publish your project and watch the magic happen."
What I got is a SWF that is built to an http directory where my PHP file picks it up and displays it in browser.
What I'm expecting/want is to interact with my SWF application through browser and debug it with MonsterDebugger.
I'm obviously missing something since there it looks like there is no way for Monster tool to attach itself to the SWF? I'm not sure how does Monster will know about my published SWF?
I'm using FlashDevelop/FlashCS5 and Actionscript 3.
Sorry if this is a stupid question, but did you actually started Monster Debugger.exe after publishing and opening your project in browser? Also MonsterDebugger.initialize(); has second argument which is an address if you publishing and accessing your project on the server I suppose. Did you try to change it?
My bad. I had MonsterDebugger.initialize() statement to execute last in constructor of my document file. I moved initialize statement to be the very first line in my constructor. Now it attaches. Apparently there was some code that executed before initialize that caused issue. All is well now that it is the first line in the document file.

Flexbuilder won't launch...arrrgh!

In a panic since I'm trying to meet a deadline so appreciate any feedback on this.
For some reason, Flexbuilder 3 on my mac won't launch, crashes on startup.
I've never experienced this before.
Checked the .log file and what seems to be the problem is the following
/Users/foo/Library/Preferences/Macromedia/Flash Player/#Security/FlashPlayerTrust/flexbuilder.fbr (No such file or directory)
WTF is the flexbuilder.fbr???
Googled but not much luck.
The only thing I've done that might have caused this is change flash player versions system wide using the official flash player uninstaller...but obviously this should not happen
Any feedback appreciated...
It's hard to know where it went, but this file just contains a number of paths of 'trusted' locations for the Flash Player. Normally when you create a new workspace in FlexBuilder it adds the workspace location to this file, or if you create a project outside of the workspace it adds the project path.
It's surprising the absence of that file would keep FlashBuilder from launching though.
Ok, my workaround was to simply create an empty text file called flexbuilder.fbr in the location of the missing file.
But still would like to know the purpose of this file and how it went MIA...