Javascript :: Fix: "NPMethod Called On Non-NPObject Wrapped JSObject" Error?
Mar 17, 2010
I am trying to call a method defined in flash object from javascript (firefox-3.0/Linux) and getting the exception: "NPMethod called on non- NPObject wrapped JSObject". If I use eval on window.document.flash_object.func() it throws "NPMethod called on non-NPObject wrapped JSObject". Where as, if I define a javascript function in side the page as given
Making a flash video streaming web-app using Actionscript 3's external Api. I am at a very rudimentary phase of the project where we're just experimenting with external interface. Right now i just have a flash object and 3 buttons each to play pause and load a video. The only button that is currently set up to do anything is the load button. My swf and my html file sit on the same file system, and my video files sit on another server with traffic being redirected through a media server.When i press the load button, which should just give it the path of the video file on it's server. Instead it throws an error that reads "Error: Error Calling method on NPObject". [code]I've read in a lot of places that this is an issue with security, but both my swf and html are in the same folder on my local machine. Only the files come from outside, and in any case I think i've set the security settings correctly when i declare my flash player in the object tag, but maybe i'm missing something there.if you can't solve my question directly can someone please explain what "error calling method on NPObject" means? I'm sure its specific to flash-js communications because i've never seen it before and that's what i have gathered from my googling.
I've been playing with the visualization API aka dynamic charts and I've found that the example at [URL] does not really work on localhost. That is, Error calling method on NPObject is thrown when a event is clicked (points A and B in the example aforementioned). I suppose that is a security issue on the server end (Google's flash base).Since that jsFiddle code is hosted on a domain, the note at the very bottom of the documentation should not apply:Because of Flash security settings, this (and all Flash-based visualizations) might not work correctly when accessed from a file location in the browser [URL] rather than from a web server URL [URL] .
I am working on a quiz system. Normally it uses jpeg images with each question. But a few of the quizzes instead feature animated .SWF files. I want to use jquery swfobject to call the play() method, once the user has clicked on an answer.
My solution works fine locally, but when I try to run it online, it throws the "Error calling method on NPObject!" message.
The quiz HTML is located on www.somedomain.com and the SWFs are on images.somedomain.com. So, I'm guessing this is a cross-domain thing.
Trouble for me is, I don't know anything about Flash... how to edit SWF files, anything about Flash attributes, or the like.
I am trying to emulate (in a limited way) the behavior of JavaScript's XMLHttpRequest object through Flash/ActionScript 3, in order to overcome the same-domain limitation. But I'm discovering that ActionScript has its own limitations in that regard. I admit that I might be mistaken, but from what I understand it is theoretically still possible to do this sort of cross-domain scripting using ActionScript, so long as you get all the permissions right. And that's where I'm running into trouble.
First, I borrowed some open-source code for a class called AjaxRequest, which I have saved as /ajax/AjaxRequest.as. I then created a Flash file called /jsajax.fla which exports to the final SWF file, /jsajax.swf. Now, here's the ActionScript code that comprises the first and only frame of the Flash file:
This is the only case I could not get working, and this is the case I need to get working. The first two were really just test scenarios to see if the script was working at all. When I try to run my jsAjax function here, I wind up with an error that shows up twice in Firebug:
uncaught exception: Error calling method on NPObject! [plugin exception: Error in Actionscript. Use a try/catch block to find error.]. uncaught exception: Error calling method on NPObject! [plugin exception: Error in Actionscript. Use a try/catch block to find error.].
I've spend hours searching for a way to put one paragraph of text in one tree node in Adobe flex. How can I do it? I created a simple tree view but the text is cut after the right border.
So I tried to create a tree renderer. In the renderer I specified width=100 and the text wrapped. But the height of the nodes was not being calculated properly, so the text over consecutive nodes overlapped and got messed.
I have a component where a Button is wrapped in BorderContainer. I'm passing a custom property to the component at run-time to change the label of the button but Flex is reporting the following error:
Cannot access a property or method of a null object reference
When the error occurs, Flex highlights the following code:
Here's the challenge: I have a Flash movie which will be embedded in a page using an unknown DOM ID that I want to be able to identify/store for callback in a JS function. My ideal user flow would be: User clicks button in Flash. Flash pauses any animations / video / sounds / etc. Flash calls an injected JS function to display a page-covering overlay experience. When user closes overlay experience, a callback method on the Flash object is called. Flash resumes playback.
The problem is, when AS3 uses the ExternalInterface.call("functionName", args...) method, there doesn't seem to be a DOM event triggered, and thus it is impossible to tell which object called a JS function, so having a "registerMe()" function doesn't seem to work. Basically, the injected JS function has no way to determine which DOM object to call, because the ID of the Flash object is unknown.
So I have an AS3 audio player which receives commands from Javascript.I have a function in the flash file called 'set_song', which sets the URL for the song to be played. The first time I call it using something like
(response.url being the URL response from an AJAX call) it works fine and all the other functions on the player work fine but if I then run the same function a second time I get the "Error calling method on NPObject!" error in Firebug. I googled this and it said it was something to do with permissions but;
The site is at dftba[dot]com The flash file is at dftba[dot]com The javascript files are at [1/4][dot]cdns[dot]dftba[dot]com The audio files are at vox[dot]dftba[dot]com
Whenever I link a set of movieclips together with the bone tool which are inside a containing movieclip, and also set the type to "runtime" instead of "authortime", I get this error when published.
"Runtime symbols with skewed matrices should be wrapped in a movie clip" What does it mean? I need the type to be set to runtime so I can use scripting with it..
I have some data-crunching code implemented in ActionScript, and I'd like to call it from JavaScript. The related question [URL] mentions the blog post [URL] which tells me how to do this. All I need now is generating the SWF file from the .as file completely automatically, with a comand-line tool on Linux. How is this possible?
I was recently searching for a way to call the print function on a PDF I was displaying in adobe air. I solved this problem with a little help from this fellow, and by calling postMessage on my PDF like so:
//this is the HTML I use to view my PDF <object id="PDFObj" data="test.pdf" type="application/pdf"/> //this actionscript lives in my air app var pdfObj:Object = htmlLoader.window.document.getElementById("PDFObj"); pdfObj.postMessage([message]);
I've tried this in JavaScript as well, just to be sure it wasn't adobe sneaking in and helping me out..
I'm working on a site, for kids, which has a small avatar in the corner that talks.The avatar is a flash file and the plan is to determine what it says through a mix of javascript and ajax.
Unfortunately when I make the flash file play an Mp3 file through JavaScript, I can't seem to stop the sound.. so when I keep clicking on a link which causes it to talk, I hear the sound repeated x times.
The odd thing is, when I attach the very same code to a button in flash, there seems to be no such limitation. It seems as if it won't store anything in global variables when calling from JavaScript.
I have a page with multiple flash objects which are written by a third party and thus can't be changed. They call a JS function but don't seem to pass any identifying parameters. Is there any way to determine inside the function which flash object called it?
I'm trying to write a Silverlight control that hosts a Flash camera and microphone (since Silverlight doesn't support these things natively, worse luck). I've written a short little Flex application ("WLocalWebCam.swf") which handles the camera, and exposes two external methods: connect(uri:String, streamName:String), and disconnect(). I can call these successfully through JavaScript as follows (simplified to remove error handling, etc.):
function connectWebCam(webCamID, rtmpUri, streamName) { var flashCam = getWebCam(webCamID); flashCam.Connect(rtmpUri, streamName);[code].....
I'm trying to add the pop function to a button in flex 4. But I keep getting an error call to undefined method when I try to use it, but it's a built in function isn't it?
Im trying to call to the main.swf other swf that contains some text and a google map. The swf that contains the google map is working fine...but everytime i play the main one, the text appears but the gmap doesnt.the code that i put on the main.swf refering to the google maps one is below (i followed the logic of the gallery that came with the presentation .fla):
// google-maps module case "google-maps" : if (firstLoad != true) { var move1Content:Tween = new Tween(contentBG_mc, "_x", Strong.easeIn, contentBG_mc._x, -500, 0.5, true);
I have some code that is connecting to a radio stream and it playing the music. That much works... I also have a little dropdown box which lets the user switch the stream... Whenever I try to switch the stream, I'm getting this error...
Error: Error #2037: Functions called in incorrect sequence, or earlier call was unsuccessful.at flash.media::Sound/flash.media:Sound::_load().
Code: private function changeStation():void { sound.close();
I have tried to modify that block of code, but I can't seem to get anything to work...
I have wrapped text in a box I'd like to do a "zoom-in" effect on. It is 3 lines long in the box. I don't want to make the font size bigger and bigger because that will change the way it wraps. Do I have to "break apart" the layer until it's outlined? I'd rather leave the text editable.
I want to load an external swf called 'signs.swf' into an empty mc called 'signholder'.
var loadit2 = new Loader(); loadit2.load(new URLRequest("signs.swf")); signholder.addChild(loadit2);
Everything works. Cool. But, I now want to target something within the signs.swf. How do I do it though? What is the path? Do I have to give the child of signholder an instance name? Everything I try fails.
If I wanted the root timeline of the external swf to gotoAndPlay(2) for example,...would i say...
signholder.loadit2.gotoAndPlay(2) ??? var wow:MovieClip = loadit2.content as MovieClip; wow.gotoAndPlay(2) ????
I am having issues with startDrag(). I have a movie clip called circle. Inside circle, I have a movie clip called circleFill and another called circleOutline.onEnterFrame, this movieClip is duplicated 4 times.
When I use this: private function onPressNow(event:MouseEvent):void { startDrag(); } IT DRAGS ALL 4 MOVIECLIPS.
[Code]...
how can I make it drag my movieClip called circle? (meaning both circleFill and outlineFill)
i have a box called infoBox that contains a text field called caption. infoBox expands on mouse-over. When it does so, I do not want the text in caption to scale up - I want it to stay at 11 pt. So far my code to prevent this from happening is not working:How do I fix this?[URL]..
I'm trying to use XML to convert the code that a Flex RTE creates to valid HTML. No problems on other HTML elements, but difficulty with unordered lists. I created a solution for moving consecutive LIs into a UL node. After trial and error, I came up with the following solution. My question is - surely there's a better way to do this?
for each (listXML:XML in xml..li) { if (listXML.children().length() == 0) { // list item is empty - make it an empty paragraph instead
I have Class1 with a read-only bindable property called age:
public class Class1 { private var _age:int; [Bindable(event="ageChanged"]
[Code]....
Of course the [Bindable] tag there doesn't make sense. But how can I achieve the same effect?
I believe I can dispatch some sort of ageChanged event from Class2 up to Class1 and then have an event handler in Class1 dispatch another local ageChanged event to which I bind Class2's age property.
I'm trying to position some MCs in rows in the stage (MCs created dinamically) in a manner that when they reach a max width they jump to a row bellow, like words wrapped in a page with left alignment or, to better explain, like the image scheme attached. Each MC has a different width.
I've tryed a lot with no success. But I guess that I'm almost there. At this moment I'm using an array that retrieves each MCs width and another that retrieves the widths sum. Here's my code, important parts in red:
How can the text in a Label control (or a similar control) be wrapped in Flex 4 beta? In Flex 3 I could use the Text control but this is no longer available in Flex 4.
I am having an issue with Mochiads. I have one of my Flash games on Facebook. Everything works just fine when the SWF is hosted by me. However, when I give it to Mochiads, they create a wrapper for the file, and the facebook transactions don't work. I suspect it's because of this code:
[Code]....
Facebook passes in some parameters when it loads the SWF, such as session ID and user ID. However, when the SWF looks at this.root.loaderInfo it is only looking at the Mochiads wrapper, not the Facebook canvas that loaded it. I am going to contact Mochiads and see what they recommend. I suspect it might be worth trying this: