ActionScript 1/2 :: Call Methods Using Exposed Interface?
Apr 12, 2010
I hav created a pure actionscript project which defines few methods.What i want to do is to expose an interface for the .swf file generated through this actionscript project created in flex to call swf's methods.This is the following code that i tried writing in mxml:
I have an object in the library that is linked with class Myclass, I define MyClass in its own AS file and everything runs ok, but as soon as I remove the linkage of the object with the class the compiler generates an error with a seemingly totally different class, that class is part of an open source data structure library for AS3, unrelated to that library object or class MyClass.
The error code is 1044: Interface method ****** in namespace ******* not implemented by class ********.And of course I checked and the class implements the interface methods, all of them so there should be no errors.The library I'm using is a [URL] and the class reporting errors is HashMap and HashTable.
I have tried declaring an interface with static methods, but I'm getting an error:
PHP Code: 1157: Interface members cannot be declared public, private, protected, or internal.
I have about 3 different classes I'd like to implement this interface and there are only two static methods that I want to define. If I remove the public and static keywords in my interface, they must also be removed from the classes or it complains about that:
PHP Code:1044: Interface method serialize in namespace net.foo:MyInterface not implemented by class net.foo:MyClass.
So I guess I should just dispense with the interface?
I've written a pre-loader for my game, it uses Loader, URIRequest and LoaderInfo to display a bytes left/total counter as the main game SWF loads - this all works fine.
However what then happens is that the main SWF constructor is called, so the game starts running "in the background" while the pre-loader finishes off.
I moved the 'start game' code from the constructor into a different function but I'm now left with the issue of how can I actually tell the main game SWF to start?
You can't do loader.content.go() (where go() is the function I want to call).
How can I access methods of a loaded SWF? Or is there another way? I tried dispatching a custom Event from the pre-loader, but the game SWF just never heard it - but is this the right way to go about things?
I really want to pass some bits of data from the pre-loader into the main game SWF too, but until I can figure out how to make them both talk I'm totally stuck! Is there a way the game SWF could reference any variables set by the preloader?
i have a main movie. i use a loader to load a "example.swf" file. then i place that file inside a holder movieclip. in example.swf, i have an instance of a class i just wrote. this class has some particular methods. from my main movie, i want to call the methods of the instance of my class i have in example.swf. how can i do that??? i know it's a kind of casting, but none seems to work.
i never really worked with .as files a lot, and i can't seem to get it right, not can i find a good tutorial. Well, in this case here's my problem:I got my main file which imports MakeButton.as. It then instantiates a class of MakeButton in order to call it's method makeButton. But how can i just call the Methods in MakeButton.as without having to instantiate anything?
How to call java/c++ methods from flash cs3/flash 8.0 ? i required both flash and c++/java codes... tell me wher to keep those places.... to run and see the desired output..
i've been struggling with this issue. I need to load a flex swf into a flash as3 shell and then call its methods. I can see the flex swf no problem - but calling its methods - nothing works. Now considering LocalConnection or even ExternalInterface to communicate between the two.
I have a parent class that instantiates a MenuClass and handles transitions between pages.[code]And here's the MenuClass which creates forward and backward buttons. Clicking each will tell the above ParentClass to transitionForward() or transitionBackward() respectively.[code]One one hand, I feel like the MenuClass is too tightly bound to its parent and is thus less reusable. On the other hand I feel like, in the interest of keeping everything self contained, it's not the ParentClass's responsibility to reach into the MenuClass instance and add event listeners there. This seems like there should be some kind of OOP rule-of-thumb to govern this kind of relationship.Is my MenuClass too tightly bound to its parent? And if so, do you have any suggestions that would loosen that coupling?
Using Flash - AS 3.0: I am trying to use ExternalInterface.call to open a .pdf file - but it is not working - nothing is happening...
ExternalInterface.call ("window.open","diagrams/v1/crh.pdf", "WindowName", params); But this line DOES work - call an .html file to open. ExternalInterface.call ("window.open","m5_quiz/v1/quiz.html", "WindowName", params);
I can't find any information that says this should or shouldn't work - it seems to me it should open it. To get around this - I have been using 'navigateToURL' to open the pdf file - but that triggers the pop-up blocker - using the External Interface call does not.
I am currently just finishing a project and I am having a big time problem with an ExternalInterface call. My application runs fine but when the javascript call is being made from flash using external interface, IE is going from the "Done" message, to showing the "!" icon, with "error on page" as the message. There is no error that is showing up in Firefox.
The current error I am seeing is an 'Unterminated String Constant', which wouldn't be a problem except for that it appears on line 1... which is [URL]
What I have:A swf exports a function via ExternalInterfaceJavascript creates new embed object and adds it to the documentCalling flash functions works fine in other browsersCalling flash functions will fail in IE 8Example of exporting functions in swf:
flash.external.ExternalInterface.addCallback("isActive", ... Example of creating the embed object: var b = document.createElement('embed');
Everytime I try to do even an ExternalInterface.call('alert','abc'); (Which will work on every browser) I get an object doesn't support this property or method After the alert appears. It even happens in the HTML generated by flash without me touching it...
Currently I'm trying to call a window.close with external interface. It works fine, however, I also have a window.beforeunload call in my javascript so the close button ends up calling two windows. One is the "this page is trying to close...blah blah blah" and the other is the custom one i wrote.
Is there anyway to call onbeforeunload combined with window.close from external interface so that i only get one warning?
I am trying call a popup window from actionscript on a button and am having trouble I am using following: import flash.external.ExternalInterface; Then on the button in Flash: on (release) { ExternalInterface.call("myPopup.start", "#contactForm"); } but I don't know if ExternalInterface will properly call the start() method.... am a little lost The page is @ [URL] and the link at the bottom "CLICK HERE FOR FORM" is what needs to be incorporated into a flash button on the SWF.
I need to call a function in JS that's expecting a JSON object. Can I do this from External Interface? The company's example (after the include file url) in HTML looks like this:
//there's an js include URL earlier// Shopwithme.Initialize({ "id":"prod1234",
[code]...
But, I need to dictate these vars through Flash. How do I call this function using External Interface?This is my EI code, but I'm obviously off base, since it's not working:
completing the code to get a return value from JavaScript to flash, but all the code was in a frame. My issue is I need to apply this code to multiple buttons, and then have them navigate to the appropriate frame. I thought I could put some of the code on the buttons themselves, or possibly I could call each button and keep all the code in frame one.....the external interface call function and the button functions....btn1, btn2; etc......I am not to verse in code and need to know what and how the best way to do this would be.
I'm hitting a brick wall here, and it's driving me mad. Used to use ExternalInterface to call Flash functions from Javascript all the time, and now under CS5 (and the way it uses object id's instead of embed in html) it's stopped working for me in certain browsers. I put together a really simple program that has the person click a link in the browser that activates a javascript function that simply sends some text in to Flash to display in a TextArea. Here's the as3 code:
When I run the flex application, I'm expecting to see 25 records from users table of my database in a list component, and all I see is 25 of this: [object User]. I tried to follow this tutorial: [URL] but as he is using ColdFusion, I am using an HTTP service type. Basically, what I did:
1) Connect to data service (Http) 2) Entered a url of xml data, method GET, operation of getAllItems 3) search as name string as data type for the parameters of this operation 4) users as service name (services.users as service package) 5) test operation (authentication required) and clicked test, which showed the xml data 6) Configure return type, selected User as root (not users), and clicked it for "is Array?" option 7) Then selected the list component, checked "New Service Call", and for bind_to_field I checked "id" (not sure exactly what bind to field does)
The following is the relevant stuff that was generated: protected function list_creationCompleteHandler(event:FlexEvent):void { getAllItemsResult.token = users.getAllItems(/*Enter value(s) for */ search); } <fx:Declarations> <s:CallResponder id="getAllItemsResult" /> [Code] .....
I do notice an error message that says "access of undefined property search". But again this was generated code so I have no idea where it was supposed to be defined. My main concern is that it's not showing records from the database (via the xml) but rather just showing: [object User]
I have created a small image gallery for use in a CBT Program.What I am looking to do is, each image in the slide when clicked needs to go to a separate html page.I currently have it working as far as being able to execute a single External Call to go to a HTML Page, but it is working for the entire gallery not individual pictures.I am thinking of separating the way the MC are loading into the container, then tying External Calls Specific to the individual clips.
below is the current code. -------------- import mx.transitions.Tween; import mx.transitions.easing.*;[code].....
In every language there are a lot of tool to inspect the interface exposed by the compiled file, then what is the best tool for Flex swf file? I am debugging my code but the invoke always failed, I am writing my callee like below in my mcml file:
public function playVideo():void { svid.play();[code]............
And in another mcml I am using SWFLoader to load it and call it, but it always failed.
I m working in flex3.0 and i just want to know that how can i call a function from fms server to my AS3.0 (Client Side) code.i tried the syntax client.call(methodname,null,null); but my flex code throw exception unable to call the method.here can i use clientobject.call (methodname,null,null) and is there some special way to declare that method at client side.
I am using in AS3 "External Interface ". When I call the JS function that is on the same page as swf everything works fine.
I added a link in the html page to an external JS file, when I move the JS function to the external JS file the website crushes.
I would prefer to have all my JS functions on an external file so I can use them in the future in other project and it also makes it easier for me to update the site.
how to call a JS function that is on an external file from AS3?