Calling function of swf in flex mobile (iPhone)

Hi all,
I have created a project to run in iOs (iphone).
I loaded external swf which contain a method firstLoad() . When I run the application in flash builder then every thing works but when I install application in device it do not call the method firstLoad().
Please all help to resolve this here is the sample code.
<fx:Script>
                    <![CDATA[
                              private function loadSwfApplication():void
                                        // load the file with URLLoader into a bytearray
                                        var loader:URLLoader=new URLLoader();
                                        // binary format since it a SWF
                                        loader.dataFormat=URLLoaderDataFormat.BINARY;
                                        loader.addEventListener(Event.COMPLETE, onSWFLoaded);
                                        //load the file
                                        loader.load(new URLRequest("swf/funtionDemo.swf"));
                              private function onSWFLoaded(e:Event):void {
                                        // remove the event
                                        var loader:URLLoader=URLLoader(e.target);
                                        loader.removeEventListener(Event.COMPLETE, onSWFLoaded);
                                        // add an Application context and allow bytecode execution
                                        var context:LoaderContext=new LoaderContext();
                                        context.allowLoadBytesCodeExecution=true;
                                        // set the new context on SWFLoader
                                        sfwLoader.loaderContext = context;
                                        sfwLoader.addEventListener(Event.COMPLETE, loadComplete);
                                        // load the data from the bytearray
                                        sfwLoader.load(loader.data);
                              // your load complete function
                              private function loadComplete(completeEvent:Event):void {
                                        var swfApplication:* = completeEvent.target.content;
                                        swfApplication.firstLoad();  // this is a Function that I made it in the Root
                                        // class of swfApplication
                    ]]>
          </fx:Script>
          <s:SWFLoader id="sfwLoader" width="100%" height="100%" />
Many thanks in advance

Hi Antoni,
It sounds like you want to create one SWF using Flash
Authoring, and then load that SWF into a Flex 2 app and call
functions across that boundary.
You can only call a function in a loaded SWF directly from a
containing Flex 2 app if the SWF you're loading uses ActionScript
3. Currently, the version of Flash Authoring that supports
publishing ActionScript 3 SWFs is in beta:
http://labs.adobe.com/technologies/flash9as3preview/
Thanks,
nj
Flex Builder team

Similar Messages

  • How? Flex pass variables or call function in SWF

    Dear All:
    I am new in Flex.
    But I stuck with a problem for weeks.
    I wish to communication between Flex and Flash(swf).
    I tried to pass variable from Flex to Swf. (Call function in Swf also pass variables)
    I did some tourital on google by using SWFLoader, which works fine.
    BUT the AS code in SWF must in MAIN FRAME.
    I need put my AS code by using DOCUMENT CLASS.
    BUT when I using Document class, the method is not working.
    The flex cannot find function in Flash.
    PS.I already set main.as class as public
    Hope some one can give some hint.
    I really get a huge headache.
    Many thanks,
    Henry

    myIP wrote:
    > or perhaps more ideal;
    >
    > for(var sVar in flashVars)
    > {
    > i++;
    > //var mcName = sVar.substr(0,3);
    >
    > // create the MCs:
    > duplicateMovieClip(_root.testBut,"medium"+sVar,i);
    > _root["medium"+sVar].testText.text=sVar;
    > _root["medium"+sVar].mcName = sVar.substr(0,3);
    >
    >
    > // assign the function to each created MC:
    > _root["medium"+sVar].onRelease = function()
    > {
    > trace(this.mcName)
    > _root[mcName]._x=0;
    > }
    > }
    >
    thanks but this does not work.
    I think that the problem is that the variables defined in the
    for loop do not exist in the scope of
    the function.
    when the MC is clicked, and the onRelease function says:
    _root[mcName]._x=0;
    the variable "mcName" is empty.
    seb ( [email protected])
    http://webtrans1.com | high-end web
    design
    An Ingenious WebSite Builder:
    http://sitelander.com

  • Running some functions in the background - Flex mobile

    Hi,
    I have an application which allows the user to take a picture and upload it to the cloud. after the picture is taken, I'm performing some manipulation which takes 10 - 20 seconds. is there a way to do that in the background so it won't affect the user app flow.
    Thanks

    There's no concept of "background" processing or multi threading in Flex just yet.
    In the past I have written processing routines that are processor-intensive, in such a way that they do some processing then stop, allowing the UI to function and then resume them after a moment. Basically, you need to be able to keep the current state periodically and then restart processing via a timed event, picking up where you left off.
    Also be aware that mobile platforms have limited resources and apps can be asked to shut down at any moment, 10-20 seconds of inactivity will not be acceptable on some platforms.

  • Flex3/air calling functions in embedded swf problem

    i'm a newbie to flex so i'm hoping there is going to be a
    simple answer to this problem. it's caused a massive headache!
    i have been using a swfLoader to load a swf, then triggering
    function calls within the swf from flex by using the following in
    the script tag of my mxml
    var mc:MovieClip = MovieClip(myMP3player.content);
    mc.loadMP3Player("file:///"+path, artist, title);
    where loadMP3Player is the function in the linked swf and
    myMP3player is the id of the swfLoader.
    this works great, no problems... but when i change the code
    so that the swf is embedded, rather than loaded at runtime the code
    above gives a
    "ReferenceError:Error #1069 Property loadMP3Player not found"
    error
    when i try to trigger the function.
    i have tried many different ways of referencing and embedding
    the swf, all have the same result. i.e. swf loads fine and the flex
    project compiles without errors, but i am unable to call the
    function. see the code snippet for my details.
    any help will be really appreciated.
    btw: i need to embed the swf as i am distributing the
    finished article as an air app.
    -------------------------------------------------code
    excerpt--------------------------------------------------

    1. You must be using the Flex Component Kit for Flash
    2. Select the clip in the library that you want to turn into
    a component for Flex
    3. Use the command (command menu in Flash) to convert the
    clip to a Flex Component
    4. Publish -> your swc is ready
    If you don't have a document class, one is made automatically
    and it has the same name as the name of the clip in the library
    You can provide a document class. Look at the linkage
    identifier for the clip in the library. There you will see what the
    name of the class is. Create the class yourself and Publish. Now
    add the swc to your library path in Flex. Now you can use the
    component as any other component in Flex. So, put the clip on the
    stage using mxml or in ActionScript using var myplayer = new
    MyPlayer();

  • Flex iPad Application : Run code before application enters background  Application Type: Flex Mobile Application Target Platform: iPad AIR Version: 4.0 Development Environment: Flash builder 4.6  I want to run some code just before iphone application goes

    Application Type: Flex Mobile Application
    Target Platform: iPad
    AIR Version: 4.0
    Development Environment: Flash builder 4.6
    I want to run some code just before iphone application goes into background. I need function similar to didEnterBackground
    of native xcode app
    (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplicationDelegat e_Protocol/Reference/Reference.h
    tml#//apple_ref/occ/intfm/UIApplicationDelegate/applicationDidEnterBackground:)
    I tried using devactivated function of flash.display.STAGE.
    I used following addEventListener:
    STAGE = this.parent.stage;
    STAGE.addEventListener(Event.DEACTIVATE, onAppDeactivated);
    It worked for me but only when device is connected to development environment in debug mode. When I create my release build
    it is not working.
    So how can I make sure that my code runs before application goes into background.

    Even I am facing almost same issue
    Problem installing Adhoc version to iPhone and iPad - Development Environment Is - Adobe Flash CS6

  • Calling functions / setting variables in loaded SWF

    You know how you can create a Movieclip object, add a
    function or variable to it, then call that function or change that
    variable from within the SWF that includes it? I wanna be able to
    do that, only with SWFs that are loaded at run time.
    My "main" SWF is simply a menu-type thing. The user clicks a
    button in my MAIN.SWF, and the MAIN.SWF then loads the SWF that's
    associated with that button, using the AS 3.0 prescribed
    Loader()-URLRequest()-addChild() method that everyone always asks
    about.
    This works great. But now I've got some custom objects and
    such (ie., not just strings) within my MAIN.SWF that I'd like to be
    able to share with the loaded SWFs. Preferably, I'd like to use an
    accessor-type function (ie.,
    LoadedSWF.GiveMeTheCoolObject(MyCoolObject);), though at this point
    I'm willing to hack into the object itself (ie.,
    LoadedSWF.CoolObject.CoolField = MyCoolObject.CoolField;) if that's
    what it takes.
    I've tried just calling the functions and setting the fields,
    but the AS 3.0 compiler doesn't care for that sort of nonsense on
    it's generically-defined objects. Notice also that, at run time, a
    call to LoadedSWF.hasOwnObject("GiveMeTheCoolObject") returns true.
    So my big-brained colleagues, what's the magic?
    In advance, thanks for the help!
    Scott

    Kglad,
    quote:
    Originally posted by:
    kglad
    from that error message it appears your function is expecting
    a member of the MyCoolObject class, correct?
    and MyCoolObject is not an instance of that class. so, you
    need to fix that. ie, create a member of that class and use that
    class member as the function parameter.
    Heh, that's what the error message says all right. But the
    object actually IS a MyCoolObject class object. I stared at this
    thing for hours, and MyCoolObject IS an instance of that class. I
    tried various casting combinations (including casting it to an
    Object and passing that) but had no luck whatsoever.
    So I googled this particular runtime error message ("Error
    #1034: Type Coercion failed: cannot convert ") and found a ton of
    links to other people having a similar issue. Typically, the
    problem was just as you said, someone passing a button as a string,
    that kinda thing. But one guy had a problem with an object he
    derived from the Event class. After hours spent trying to get it to
    work, he tried overriding the base class' clone() method and got it
    to work:
    http://www.asserttrue.com/articles/2006/10/14/custom-events-in-actionscript-3-0
    As for my project, I took a long hard look at the overall
    architecture of my project and decided that it was best if all the
    "real work" took place in the MAIN.SWF file. This approach would
    solve a couple of other problems, and it just makes sense in a
    "separate the display from the data" mentality.
    So (and this is the interesting part) I changed the API for
    the LOADED.SWF to accept String pairs (ie.,
    LoadedSWF.AddToDisplay(Name:String, Data:String) ) instead of
    accepting MyCoolObj. Ran it, and Viola, now we're working without
    any run time exceptions. After that glorious moment, I created a
    couple of other APIs that just accepted base classes (one an int
    type, the other a function type) and was happily on my way.
    From this, I gather that passing non-base class (ie, derived
    class) objects to loaded MovieClips via custom function APIs is...
    maybe not as straightforward as we'd expect. In the grand scheme of
    things though, not a big deal: As far as I'm concerned AS3 rocks.
    Again Kglad, thanks for all the help: Your input on how to do
    this was the big push that I needed to get over the last technical
    hurdle of this project.
    To those who are reading this topic for the "how do I call
    functions and/or set variables in a loaded SWF?"
    The short answer is to cast the loaded SWF's content object
    as a MovieClip and then call the function or alter the variable:
    //Load the SWF (you've seen this code a million times)
    var LoadedSWFObj:Loader = new Loader();
    var MyURL:URLRequest = new URLRequest("LoadThisSWF.SWF");
    LoadedSWFObj.load(MyURL);
    //This is within your Event.COMPLETE handler:
    //Cast it as a MovieClip object and work with that.
    var LoadedSWF:MovieClip = LoadedSWFObj.content as MovieClip;
    // or another way to cast it is:
    var LoadedSWF:MovieClip = MovieClip(LoadedSWFObj.content);
    //Call yer function:
    LoadedSWF.CallMe();

  • Hey my iphone 4 has a problem regarding carrier. Its always showing searching mode and wifi-address N/A and Bluetooth address 00:00:00:00:00 and call function is disable

    hey my iphone 4 has a problem regarding carrier. Its always showing searching mode and wifi-address N/A and Bluetooth address 00:00:00:00:00 and call function is disable. Please help me. I have tried every thing ..like restore from DFU mode with out sucess.

    Refer to  Note 98458 - SAPMSSY1, CALL_FUNCTION_NOT_FOUND

  • Check What PHP function returned with Flex Mobile Project

    Hello, I'm connected to PHP service and Im calling function login that is returning "yes" or "no".
    My question is, how to check what was returned with Flex, this is what I have:
    protected function button_clickHandler(event:MouseEvent):void
                    loginResult.token = employeeService.login(Name.text, pass.text);
    What to do next?
    Thank you

    Thanks Keith, I'll have a look at that. In addition to opening a PDF, I want to be able to encode an anchor id in to the open command to jump a specific anchor; I'd concluded that on iOS, until Adobe add decent url-scheme support, that was a no go - so I've been staring down the barrel of converting the .pdf to HTML and tidying up the inevitable issues manually. Here's hoping Print2Flash will help avoid that!

  • Test Flex Mobile Project On Iphone

    Hi,
    Can i test The flex Mobile Project in Iphone Simulator Like Xcode? in Flex debug i can select the Iphone device, but this Device haven't accelerometer for example.
    Can i Test in Another Debug Device, or can i enable Accelerometer in Debug Device in Flex?

    Adrian, flash/flex as a development tool is mostly platform independent so much development testing can be performed on any mobile platform. It may simply be a matter of convenience to use an android tablet in place of an iPad. That's not the same as an endorsement to buy an android tablet for testing iPad apps. You should always have the target platform available.
    The iPhone/iPad development works. Perhaps it could work better, but plenty of people use it now.
    Why use Flash? The reasons are plain to see - Flash developers can use their existing skillset and they can develop for multiple platforms with the same technology, rather than differrent technologies for each platform.
    Flash/Flex development for mobile isn't perfect, but neither is anything else.

  • Why i can't make a normal video call over my cellular operator using by iphone 4s ????!!!! is it possible that if my mobile is iphone so i can not contact (Video Call - or Send Files over Bluetooth ) people do not have iphone ??????!!!!!!!!!

    why i can't make a normal video call over my cellular operator using by iphone 4s ????!!!!
    is it possible that if my mobile is iphone so i can not contact (Video Call - or Send Files over Bluetooth ) people do not have iphone ??????!!!!!!!!!
    i'm still looking for solution, but if i there is no solution so i will throw My Own iPhone 4S in the nearest Trash.
    (I had got a big problem and thanks for Nokia saved me. and if i don't care about apple products i will never send to you this, so kindly find solution or people in middle east will stop using iphone)

    No clue why you cannot make video calls over your cellular operator... have you tried contacting them?
    If you're referring to FaceTime, it is currently limited to Wi-Fi only.
    Sending files via Bluetooth is not a supported feature of the iPhone or iOS.  A simple search of the web or these forums would have made that abundantly clear.
    Threatening to throw away valuable items in these forums only serves to make you look less than intelligent.  No one here is an Apple employee, we are all users like yourself.  As such, we could care less what you do.  If you choose to be stupid, that's up to you.
    Educate yourself and stop whining.

  • Iphone 3gs Video calling function

    How do I use the video calling function on the 3GS I was told by 02 customer service, that it's below the "call" button under options???????....how do I do this, obviously it needs to be a 3G phone receiving the call, and one that enables video calling....

    I don't know about the slacking part. The iPhone's introduction got many cell phone manufacturers off their collective duffs - away from putting out pretty much the same old stuff year after year without seeing significant improvements. Phones in the smart phone category were primarily targeted at the enterprise or business market prior to the iPhone. Sales of phones in the smart phone category to consumers is on a significant rise due to the iPhone, and how many iPhone "killers" have we seen since? A bunch, which is a good thing.
    Apple doesn't manufacture different iPhone models. There is one model at a time with the only difference being storage capacity or a black or white backing. Video calling may be used heavily in parts of Europe with a significant number of cell phones sold with the capability, but not so in the U.S. - not yet anyway.
    I venture to say we will see this capability with the iPhone at some point. Maybe after LTE (4G) networks get rolled out in many parts of the world. The two largest carriers in the U.S. - Verizon and AT&T are in the process of rolling out an LTE (4G) network which won't be in place extensively for another 2 years or so.

  • HT203712 I have a 2011 tahoe.  My bluetooth functioned properly until I updated my iPhone.  Now the iPhone connects to the Tahoe but when I try to call a number it does not work.  Either it cals the number and has no outgoing or incoming sound or it just

    I have a 2011 tahoe.  My bluetooth functioned properly until I updated my iPhone.  Now the iPhone connects to the Tahoe but when I try to call a number it does not work.  Either it cals the number and has no outgoing or incoming sound or it just says it iis unable to complete the call.

    I would check with the Auto dealer where the vehicle was purchased to check and see when the bluetooth software was last updated on your vehicle. With the vehicle being a 2011 and if the software has not been updated since the dropping of IOS 7 then obviously there will be software incompatibilities.
    Good luck.

  • HT201328 Want to go overseas and need my virgin mobile iPhone 5 unlocked so I can use it in europe.  Called VM and they said it can't be done.  That doesn't make any sense.. What can be done?

    Have Virgin Mobile iPhone 5 and they said it can't be unlocked.  Reason to get it unlocked is so I can use the phone when travelling in Europe.   This is crazy because I also payed for the phone in full...  Also, what happens if you move to a region in the U.S. and service is bad...Your stuck with an expensive brick.. Any way to get it unlocked?

    Not all carriers unlock their phones.  They are under no legal obligation to do so in many places.

  • Flex Mobile project scaling with Retina display iPad (3rd gen).

    Adobe et al,
    With the new iPad 3 we now have a ton more pixels to utilize. I'm familiar with and have already successfully tested the AIR 3.1+ commandline compiler option (-platformsdk) to get Retina display on the new iPad. In ActionScript mobile projects the content is rendered beautifully on the new iPad. But with Flex Mobile projects, something is happening that causes it to render incorrectly. It's retina display alright, but the size is way too small.
    Below is an image WITHOUT the -platformsdk build tag, that causes the app to be pixel doubled to fit on the new iPad:
    Notice that it's scaled proportionally, even though the text and components are slightly pixelated. Not a big deal, but noticeable on the device.
    This image is taken with the app rendering in Retina display (setting the -platformsdk pointing to iOS 5.1 SDK):
    As you can see, the text/components are rendered really clear, but the scale is way off. Obviously it's getting the width of 2048x1536 from the device, but it's way too small.
    How do I fix this? I've tried changing the applicationDPI, but it doesn't fix it. Setting a width/height of 1024x768 does nothing either. It seems we need to overrride a behavior that causes it to fit everything in so small.
    A little help?
    Thanks,
    iBrent

    Alright, kevinkorngut's answer was the right one. It appears that even though AIR 3.x can render high resolution apps, it still returns the incorrect DPI for the new iPad. In a Flex Mobile project you have to override the DPI using the method mentioned above.
    Here are the results I got:
    Using the runtimeDPIProvider property on the TabViewApplication tag (works for any of the three project types) I created a class that extends RuntimeDPIProvider. To detect which iPad I was on, I used the following code:
    override public function get runtimeDPI():Number
         var os:String = Capabilities.os;
         if(os.indexOf("iPad") != -1)
              if(Capabilities.screenResolutionX > 2000 || Capabilities.screenResolutionY > 2000)
                   return DPIClassification.DPI_320;
              } else {
                   return DPIClassification.DPI_160;
         } else {
              return Capabilities.screenDPI;
    I'm returning a DPI of 320 as this gives the best result that matches the proportions of the device. In other words, even though the iPad DPI is 264, setting the app to 320 gives the correct size at the new Retina display.
    In order for this to work, you must compile the app with the -platformsdk flag pointing to iOS 5.1 SDK, and currently that means you need a Mac running Lion with Xcode 4.3.1. Here's the adt command I used:
    adt -package -target ipa-test -storetype pkcs12 -keystore ~/Desktop/iOS_DevCert.p12 -provisioning-profile ~/Desktop/iOS_DevProfile.mobileprovision newiPadTest.ipa newiPadTest-app.xml newiPadTest.swf -platformsdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPh oneOS5.1.sdk
    Also, the -app.xml descriptor file must have the <requestedDisplayResolution>high</requestedDisplayResolution> within the <iPhone> tags.
    Thanks everyone for their replies!
    iBrent

  • Possible to obtain phone IMEI number with flex mobile project?

    Just like the title says, is it possible to obtain phone IMEI number with flex mobile project? If not, does anyone know of another method to get a unique number to identify the phone being used (on android and iphone)? I'm asking because I'm building a chat application, and I need a way to potentially ban users based on something other than an IP address.
    edit: now that I think about it, an IMEI number might not be the best way, since wifi tablets may not hav an IMEI number, anyone have any other idea how I could get a number to identify a device that would already be present, because i'm afraid if its something generated by me, a simple uninstall and re-install could circumvent a ban.

    If this is an Android project, you can use this ANE:
    http://blog.snowflax.com/native-imei-action-script-extension-for-android/
    I have verified that it does work and provides the IMEI.  For cases where there is no IMEI ( bc the device is not a mobile phone, or it uses IMSI instead ), you can just bypass the device id check with your database, and enable full functionality.
    Although this is not full-proof, it will nevertheless screen a lot of devices.  With this, you can keep track of the number of app installs / resets, and add a 'banned' flag if you want to in your DB -- if you see unusal activity ( like:  unsually high number of re-installs ).
    ----->  UPDATE:
    I just found this ANE which  includes a class called 'SystemProperties', to find the IMEI/IMSI/serial/phone number on Android, and the MAC address on iOS:
    https://github.com/mateuszmackowiak/NativeAlert
    I have verified that the iOS part works, but haven't tried the Android side, yet.  Note: for iOS, it will also give you a UUID ( even though the object tag claims it is the UDID -- it's not ), which is worthless as a persistent means of identifying the device. since it gets reset on each app re-install.  So, for iOS, you have to use the MAC address, unless you are willing to store/restore the UUID into EncryptedLocalStore, as suggested by a user in:
    http://stackoverflow.com/questions/6794493/get-unique-identifier-mac-address-udid-etc-in-a dobe-air-for-ios

Maybe you are looking for