Game rendering and memory optimization in AIR for Android

I am coding an engine for android that uses the fastest methods so I can rapidly make android and iphone (if possible) games.
1) using GPU rendering, are the bitmapData functions like copyPixels accelerated?
in other words is it faster to use only copyPixels to render all my game objects to one bitmap or use separate sprites?
2) this is a general air question, if I want to clear memory used, like for example when moving to a new stage and I want to delete those bitmaps that been used on the previous stage.
is there a function to force them to be removed from memory, or should I just remove all the references?
also if I remove all the references from an object it will be deleted if it's listening for events from another object?
Thanks.

1. Various forum posts and articles I've seen suggest a blitting approach like copying bitmaps together gives roughly the same performance results as separate sprites with GPU rendering.
Might be a good idea to setup a processor intensive game scenario and try each for comparison? I'l be interested in hearing how you get on.
TBH I haven't tried the copyPixels approach yet, so i'll be playing around with it myself soon.
2. Yes, removing references is the way to get objects garbage collected. There are ways to force garbage collection, but they are hacky. Definitely not good practice.
And yes make sure you remove the event listeners because as you suspect, they will keep the objects alive.
There is an argument called 'use weak reference' which you can set to true when you add the event listener. This is intended to prevent them keeping objects alive, but I have seen situations where it doesn't work properly.

Similar Messages

  • AIR for Android Captive Runtime

    Is it possible to package android apps with AIR (or will it be) using Flash CS5.5? I don't see anything on the web about. Just how to do it with Flex and ADT etc...

    Hi,
    I've made a complete working example for publishing an application with captive runtime, assets and native extensions starting from Flash CS5.5
    I was able to make it thanks to hints and suggestions I found in this thread.
    Note: english is not my native tongue so I hope you understand what I've written also if sometime it sounds "engrish".
    Here it is the link to the zip file:
        http://www.genereavventura.com/hosted/Air3NativeExtensions/AirVibrate.zip
    Requirements:
    - You must have Flash cs5.5 pro (obviously)
    - You must have installed the overlay for Air3.0 sdk on your Flash cs5.5 pro
    Here it is a link that explain how to accomplish it: http://forums.adobe.com/message/3939712
    Here the steps I made.
    1) Open Flash CS5.5 and create a new AIR for Android application
    2) Add the swc to the libraries used by your FLA (open Actionscript 3.0 settings and add "VibrationActionScriptLibrary.swc")
       Btw, you can find this "ready to use" native extension inside the zipfile that you can download from here: http://www.adobe.com/devnet/air/native-extensions-for-air/extensions/vibration.html
       However in my example you will find also a directory named "extension" that contains it.
    3) Open and then close the "air for android settings": by doing this Flash will create yourapp-app.xml file in the directory where your FLA resides.
       For example my fla is named "vibrate.fla" so Flash created for me a "vibrate-app.xml" file.
    4) Make a copy of this "vibrate-app.xml" file by naming it "real-vibrate-app.xml" (or choose whatever name you want)
       I've done this because after modyfing the original one by adding the <extension> tag (see below) I wasn't able to test my app from within Flash IDE (when I compile it it simply doesn't start)
       Instead by doing this all worked fine.
    5) Edit the "real-vibrate-app.xml" file by adding somewhere these lines (I added it just before the <initialWindow> tag)
        <extensions>
          <extensionID>com.adobe.Vibration</extensionID>
        </extensions>
    6) Add <uses-permission android:name="android.permission.VIBRATE"/> in the <android> <manifestAdditions> part in "real-vibrate-app.xml" file.
       You should do something like this:
       <android>
          <manifestAdditions>
            <![CDATA[<manifest>
              <uses-permission android:name="android.permission.VIBRATE"/>
            </manifest>]]>
          </manifestAdditions>
       </android>
    7) Develop your application
       I made a simple one that loads an external jpg and shows it on the stage: then the user can tap on it to make the phone vibrate.
       The function "doVibration" is called only when the app is running on Android Device so I do not get any executions error when I run the app from within Flash Ide
    8) Publish and test it to your USB connected device by launching the "publish.bat" file I have created
       Open a dos prompt and move to your project directory then type publish.bat and press enter.
       Note: it can be that you have to edit the bat file in order to change the path to the ADT tool that comes with Air3.0 sdk
       It should be in [your adobe flash cs5.5 directory]\AIR2.6\bin\adt (rememeber, you must have installed the Air3.0 sdk overlying the old Air2.6/2.7 in the AIR2.6 directory)
       Inside the bat file you can change easily the target type (captive or not) simply by commenting/decommenting the right line.
       Captive version is about 8Mb more than the normal one but the big deal is that the user that installs it do not need the air runtime installed on his phone!
       The "big line" that creates the package is the following one:
       call %ADT_LINK% -package -target %TARGET_TYPE% -storetype pkcs12 -keystore certificate/vibrate.p12 -storepass android AirVibrate.apk real-vibrate-app.xml -extdir extensions vibrate.swf icons assets
       where:
       call %ADT_LINK%          it's just the path to the ADT tool
       -package                 it's the command that we want ADT to execute
       -target %TARGET_TYPE%    captive/non captive version
       -storetype pkcs12        certificate related
       -keystore certificate/vibrate.p12  path to your self signed certificate
       -storepass android       certificate related, I created the example certificate with "android" password and this parameters tell ADT to always use it without prompting
       AirVibrate.apk           the name of the Apk
       real-vibrate-app.xml     the apk-xml to use that is the one we modified manually above
       -extdir extensions       it's the path to the directory that contains the native extension
       vibrate.swf              the main swf
       icons                    the icons directory
       assets                   the assets directory (where I put the external jpg)
    That's all.
    If everything is correct, the batch file creates the AirVibrate.apk then installs it on your attached usb device and run it.
    When you tap over the Android image that will appear, your phone should vibrate.
    Now.. does someone wants to develop a Native Extension to show Admob banners in our Android Air Applications?
    If I missed something, please let me know.
    Thanks

  • What AIR for android version should I choose to publish Flash game on Google play store ?

    My team and I are almost done whith our mobile game development using Flash professional CS6.
    We wonder what version of AIR for Android we should publish for as a target (in publish settings)???
    because we will publish it on play store and we want it to be compatible with largest number of android phones.
    knowing that users have different versions of AIRs, different Flash Players and different OS versions on their phones.
    and are there any useful points we should take into consideration when publshing flash game on play store??
    thanks,
    Abeer

    The current version of AIR (version 13) is still compatible with the same set of Android devices as version 3 was, and there no doubt have been a lot of things fixed over the last two years. So, just use AIR 13. It’s currently compatible with over 4000 devices, which should be enough I think!

  • Issue with Amazon and AIR for Android

    It appears that Flash Pro CS5.5 does not create .apks properly for the Amazon Appstore. The airDownloadURL is incorrect according to Amazon and your app will likely be rejected if you try to submit it to them. In the AIR for Android Settings, when you choose "Get AIR runtime from: Amazon Appstore" in the Deployment tab, the link Flash Pro uses for the airDownloadURL property is:
    http://www.amazon.com/gp/mas/dl/android/com.adobe.air
    when it should be this:
    http://www.amazon.com/gp/mas/dl/android?p=com.adobe.air
    As far as I can tell, there is no way to edit this within Flash CS5.5 so Adobe needs to make the change in a future update. The only way I know of around this is to create your .apk manually through the command line using the AIR SDK. It should look something like this:
    adt -package -target apk -airDownloadURL http://www.amazon.com/gp/mas/dl/android?p=com.adobe.air -storetype pkcs12 -keystore certificate.p12 filename.apk filename-app.xml filename.swf icon36.png icon48.png icon72.png
    If you don't have any experience using the AIR SDK then do some searching online. There are a ton of good resources out there.
    Good luck!
    tomdei

    For me works editing of Markets.xml file at:
    "C:\Program Files\Adobe\Adobe Flash CS5.5\en_US\Configuration\Android\Markets.xml"
    and replacing of Amazon Appstore key to
    <market name="Amazon Appstore" url="http://www.amazon.com/gp/mas/dl/android?p=com.adobe.air"/>
    That's all!

  • Getting Device Properties like OS,Model,Brand,SDK,Version and CPU on Air for Android

    Hi there,
    I just wanted to share this old blog post in case no one knew about this here (like i didn't). I have no affiliation with this person, i just think its great!
    Getting Device Properties like OS,Model,Brand,SDK,Version and CPU on Air for Android
    http://www.funky-monkey.nl/blog/2010/11/11/getting-device-properties-like-os-model-brand-s dk-version-and-cpu-on-air-for-andoid/
    I was able to correctly identify DroidX and Motorola Xoom family edition in my test, with no ane, pretty cool!

    Okay. I've found an answer:
    yes, you can and have to add these icons via the descriptor file, since flash wont let you. But before you do that, go into the "Air publish" settings in flash. Here, right on page 1, there is the "include files" section. Add your icon pngs there. Hit OK and exit these settings. Now open the descriptor with an editor outside of flash and write in the files like I posted above. Close. Save. Make it write protected. No go to flash and publish.

  • Adobe AIR for Android - GPU Mode - Bitmap Auto-Smoothing Issue

    Hi everyone
    I'm having a bit of an issue with the AS3 bitmap object. I'm currently developing an 8-bit style pixel game for AIR for Android.
    This game is being developed at a very low resolution and is being scaled up to maintain the charm of an old retro game.
    One of the methods I'm using is drawing pixels directly to bitmap objects and scaling the object up to create the old look.
    When testing on a mobile device, this works beautifully when you set the rendering method to Direct but when you change
    the render method to GPU the visuals go all blurry and anti-aliased (it's as if the bitmap is being smoothed out). The mini map
    for example is rendered using the setPixel method and then scaled up 9 times. Looks great on my PC but once I export it to my phone
    it looks absolutely awful! This is no good as I want to keep the clean, solid pixel look to maintain the the old 8-bit feel and obviously
    I'd like to stick to GPU mode due to it's speed.
    Like I said, this only happens once you test on a mobile device in GPU mode - it doesn't do it on my main desktop machine or
    in Direct mode. I already have the stage quality set to low and I've tried setting the bitmap's smoothing property to false but
    it does nothing.
    Does anyone have any suggestions as to how I can get around this?

    How about first blit your image to a small bitmapData, then draw it on a large bitmapData (9X larger)?
    Like,
    var small_bmd:BitmapData = new BitmapData(SMALL_WIDTH, SMALL_HEIGHT, false);
    var large_bmd:BitmapData = new BitmapData(SMALL_WIDTH * 9, SMALL_HEIGHT * 9, false);
    var bm:Bitmap = new Bitmap(large_bmd, PixelSnapping.NEVER, false);
    var blitRect:Rectangle = new Rectangle(0, 0, 9, 9);
    var i:uint, j:uint, blitColor:uint;
    small_bmd.draw(SOURCE_IMAGE);
    large_bmd.lock();
    for(j = 0; j < SMALL_HEIGHT; j++){
         for(i = 0; i < SMALL_WIDTH; i++){
              blitColor = small_bmd.getPixel(i, j);
              blitRect.x = i * 9;
              blitRect.y = j * 9;
              large_bmd.fillRect(blitRect, blitColor);
    large_bmd.unlock();
    Not sure if the code works or not, but hopefully this helps.

  • Why is debugging an AIR for Android on device via USB so awful?

    I've used Flash 8, Flash Pro CS4, CS5, CS5.5, and now CS6 and I have to say when it comes to debugging it is absolutely the worst environment I've ever worked in. Over the years the number of times I've successfully debugged an application can be counted on one hand. Really, its that bad. Flash will crash or stop responding. I place a breakpoint in the code and Flash will either: A) Ignore it, B) "Breakpoint not set; No executable code at line ###" C) Crash and burn. D) breakpoint turns on but can never be turned off.
    Its infuriating and maddening. After this much time why can't Adobe make the debugger work?
    Frankly, because of this I have to write ALOT of trace statements into my code.
    Has Adobe just given up on the debugger in Flash Pro? As a developer should I be trying to convince my company  to switch over to Flash Builder?
    For example, right now I'm trying to debug an AIR for Android 3.4.0.2540 via USB on a Motorola Droid 2. I can publish and run in debug mode and see all my trace statements just fine. But I know the instant I need to try to set a breakpoint I'm doomed. Or if my code gets in a race condition like right now. The breakpoints in the new code I added were ignored (see B above) and I can find no options in the Debug menu to break into my app and observe what code it is currently executing. My only option is to end the debug session.
    Can anyone comment on debugging in Flash Builder vs. Flash Pro? Is it any better?
    Can anyone suggest a solid development environement with debugging that supports Actionscript 3 or can compile it to some other language or object code that would allow me to reliably debug code?
    I'm sorry for venting like this. I like Actionscript 3 and I even like Flash Pro until it comes to debugging. But at this point I really need to consider other options so I can get some work done.

    Hi Chris,
    I also have an HTC Legend, and I'm trying to make some tutorials about publishing from Flash Builder to Android.
    I've notice this also, and I must say, it's a complete deception that AIR cannot support this phone, and certainly it seems that upgrading to the Android 2.2 was a bad option, since I defenitly was able to make a simple flash game, and some other exeperiments, and got them to work with AIR when this phone had Android 2.1
    If it runs on Android 2.1, maybe it was a an upgrade that make AIR incompatible with this device on Android 2.2. Is there any way of running it, maybe forcing to install a AIR version that works.
    I was starting to program on Flash Builder, and experimenting on my Legend, but now I stumbled on this.
    Thanks,
    Leonel

  • Cant install AIR for Android on HTC Legend

    Is Air for android compatible with the HTC Legend?
    I have a legend running Android 2.2, but the market will not allow me to install the app. I thought it might be a temporary error so I downloaded an APK from the web, it fails and says cannot install.
    The legend plays flash content in 2.2, so i cant see why AIR wouldnt be supported?
    Chris

    Hi Chris,
    I also have an HTC Legend, and I'm trying to make some tutorials about publishing from Flash Builder to Android.
    I've notice this also, and I must say, it's a complete deception that AIR cannot support this phone, and certainly it seems that upgrading to the Android 2.2 was a bad option, since I defenitly was able to make a simple flash game, and some other exeperiments, and got them to work with AIR when this phone had Android 2.1
    If it runs on Android 2.1, maybe it was a an upgrade that make AIR incompatible with this device on Android 2.2. Is there any way of running it, maybe forcing to install a AIR version that works.
    I was starting to program on Flash Builder, and experimenting on my Legend, but now I stumbled on this.
    Thanks,
    Leonel

  • Adobe Air for Android - caching key event that have "unusual" keycode

    I am developing an application for a platform. The OS of this platform is Android Gingerbread (2.3.4) The platform has some buttons with "unusual" key code: 141, 131 etc.
    Native application that created in ADT can catch and respond to these keyboard events While my Adobe AIR application (created in Flash professional) are Indifferent to them.
    I try both: stage.addEventListener(KeyboardEvent.KEY_DOWN,KeyHandler,false,0,true); NativeApplication.nativeApplication.addEventListener(KeyboardEvent.KEY_DOWN,KeyHandler,fa lse,0,true);
    How can I "catch" this event? Maybe a way to add constant to the keyboard class?
    Thanks

    If you are deploying for iPhone it is on the 'general' settings(First setting page opened).
    Just noticed you are making android app but i still added iphone deployment settings for further future
    But if you are using it for flash/android you have to add code into your fla descriptor with XML language(dont worry it is 1 line of code)
    Watch the video on this page about GPU rendering:
    http://blogs.adobe.com/cantrell/archives/2010/10/gpu-rendering-in-adobe-air-for-android.ht ml
    Your app shouldn't lag after these steps but if you have a project that gets bigger and has lots of code it MIGHT lag so that is when external files should help.

  • Air for Android Extremely Slow...

    Hey everybody,
    Hopefully some of you have been trying the prerelease of Air for Android like myself. Its all great and easy peasy to export the apps to my phone but it seems to be ridiculously slow even for seemingly simple scripts.
    This is what i'm trying to run at the moment and the app times out before it gets running (All the apps do get running eventually but only after the time out timer could have run over multiple times).
    import flash.display.Shape;
    import flash.events.Event;
    import flash.sensors.Accelerometer;
    import flash.events.AccelerometerEvent;
    var vx:Number = 0;
    var vy:Number = 0;
    var s:Shape = new Shape;
    s.x = stage.stageWidth/2;
    s.y = stage.stageHeight/2;
    with (s.graphics)
        lineStyle(3,0);
        drawCircle(0,0,5);
    addChild(s);
    var accel:Accelerometer = new Accelerometer();
    addEventListener(Event.ENTER_FRAME, onFrameLoop);
    accel.addEventListener(AccelerometerEvent.UPDATE, onAccelEvent);
    function onAccelEvent (evt:AccelerometerEvent):void
        vx += evt.accelerationX;
        vy += evt.accelerationY;
    function onFrameLoop (evt:Event):void
        s.x = Math.round(s.x + vx);
        s.y = Math.round(s.y + vy);
    From what I can see theres nothing actually wrong with the code from what I can see but it just takes so frickin' long to load. If I make an app with some equally simple animations it loads almost instantly. I am aware that this is only a prerelease version of the software and the documentation does say that hardware acceleration has not been added yet but whenever I watch the videos up on youtube of the Adobe team making amazing apps with obviously buckets of script running smoothly on their phone I get annoyed
    P.S The processor on my phone isn't the problem either (Nexus One Eclair )

    If you are deploying for iPhone it is on the 'general' settings(First setting page opened).
    Just noticed you are making android app but i still added iphone deployment settings for further future
    But if you are using it for flash/android you have to add code into your fla descriptor with XML language(dont worry it is 1 line of code)
    Watch the video on this page about GPU rendering:
    http://blogs.adobe.com/cantrell/archives/2010/10/gpu-rendering-in-adobe-air-for-android.ht ml
    Your app shouldn't lag after these steps but if you have a project that gets bigger and has lots of code it MIGHT lag so that is when external files should help.

  • AIR for Android - best video specs?

    Hello everyone,
    I'm trying to develop a custom video player app using the AIR for Android extension in Flash Pro CS5.
    I tried out an FLV and an MP4 video with the most stripped back code snippet, but the video still seemed a bit jerky on my phone. (Samsung Galaxy S)
    // Code
    var video:Video;
    var connect_nc:NetConnection = new NetConnection();
    connect_nc.connect(null);
    var stream_ns:NetStream = new NetStream(connect_nc);
    stream_ns.client = this;
    video = new Video();
    addChild(video);
    video.attachNetStream(stream_ns);
    stream_ns.play("video.flv");
    Would anyone know what the ideal encoding specs are for non-jerky video? Is it something to do with H.264, or perhaps CPU vs GPU? (I tried that too, with no visible difference.) Even with the app running at the appropriate frames per second (in this case, 24fps), the video seemed less than smooth.
    Any comments would be much appreciated!

    Hi [email protected]
    These should help you:
    http://www.adobe.com/devnet/devices/articles/encoding-guidelines-android.html
    http://www.adobe.com/devnet/devices/articles/video-player-optimization.html
    regards Mike

  • AIR for Android app location

    I am developing an AIR for Android app. When the app is published, does anyone know where on the phone the app is stored? It would be on the internal memory as the app is never moved to the sd card.
    I need to know this as the app exports a pdf file. I am using File.applicationStorageDirectory so the pdf should save in the app directory but I cant find it.
    Would the app be stored in the same directory for iOS as well?
    Thanks
    UPDATE: 18/01/12
    I have found the app location and which can be accessed with a rooted phoned.
    I also have the pdf saving in the /Local Store/ directory of the app. However, is it possible to save the pdf in the sdcard directory? I have tried a relative path (../../../../../../sdcard) but that didnt work.

    Hi guys, any ideas?

  • Sound delay with air for android

    Hi,
    I am building a game with air for android, all work just perfect but I have just little problem with the sfx.
    When I play sound I have 500 millisecond delay.
    I tried to use wav format instead of mp3 and its help a bit but still there is a big delay.
    Any ideas?
    Thanks

    First, never use the nativePath property of File.applicationDirectory (as the example does). This isn't supported on Android. You get an empty string. While you could usually bypass the write-restrictions on te application directory using this technique on the desktop, it definitely does not work on Android. Always use URLs rether than native paths to refer to application files.
    What you should do is create the database in the applicationStorage directory. You could do this with SQL, or by coping a "template" database file that you packaged with the application from the application directory o the application storage directory (using the URL not the native path, of course.)

  • AIR for Android monetizing

    I am new to this so forgive me, but i launched a paid version of an AIR for Android App and wanted to launch a free version with ads in an attempt to see how the monetizing of an app goes.  Does anyone have experience doing this with AIR for android?  if so what are my options?
    erik

    After a lot of trouble (account canned on ADMOB ) and research, I have gotten Ads to work in all my Android Apps. This will work on a lot of AD networks, but most will ban you click fraud. Only one network allows this method and they provide support for it too.
    I have over 100 games apps. with this method implemented and working. Here is a link to one of them for you to see how it will look in game. I am using multiple ads in this to force the user to click and make me some money: https://market.android.com/details?id=air.GraffitiCityMarketFree&feature=search_result
    Does LeadBolt offer HTML integration for banner ads?
    LeadBolt does allow banner ads to be integrated into your app using HTML, rather than using our SDK. To create a HTML banner ad after adding an app to the LeadBolt portal, simply click “Add Ad” and select “App Banner (HTML)” from the drop down box. The HTML snippet can then be added directly into your app’s HTML framework.
    So far my eCPM is $6.15
    I have created this guide to show my appreciation:
    Publisher Code:
    STEP I:
    Get an Account: http://leadboltapps.com/web/publishers/signup.php?ref=10022842
    STEP II:
    Click on the “APPS” tab and “Create New APP” to create an AD. Remember to change content unlocker to HTML Banner. While in the process.
    STEP III:
    Get the HTML AD Code and keep it safe. That is all we need from the site. How simple was that?
    AD HTML FILE:
    Create an HTML File and Load it to your site. Remember to replace your HTML Code from above step with where I have put: ****ENTER HTML AD CODE HERE****
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
    <title>Untitled Document</title>
    <style type="text/css">
    body,td,th {
         color: #FFF;
    body {
         background-color: #000;
         margin-left: 0px;
         margin-top: 0px;
         margin-right: 0px;
         margin-bottom: 0px;
         text-align: center;
         position: relative;
    </style>
    </head>
    <body>
    ****ENTER HTML AD CODE HERE****
    </body>
    </html>
    Action Script Code:
    STEP I:
    Credit: I found this on another site and would like to give credit to the author of pixelpaton.com
    The only change you need to make is to enter your website html url where you have placed the AD HTML FILE in the space where I have put : "****ENTER COMPLETE HTML URL HERE****". Where ever you want the AD, place the following code:
    // imports
    import flash.events.Event;
    import flash.events.LocationChangeEvent;
    import flash.geom.Rectangle;
    import flash.media.StageWebView;
    import flash.net.navigateToURL;
    import flash.net.URLRequest;
    import flash.events.MouseEvent;
    // setup variables
    var _stageWebView:StageWebView;
    var myAdvertURL:String = "****ENTER COMPLETE HTML URL HERE****";
                    // check that _stageWebView doersn't exist
                    if (! _stageWebView) {
                                    _stageWebView = new StageWebView () ;
                                    // set the size of the html 'window'
                                    _stageWebView.viewPort = new Rectangle(0,0, 800, 100);
                                    // add a listener for when the content of the StageWebView changes
                                    _stageWebView.addEventListener(LocationChangeEvent.LOCATION_CHANGE,onLocationChange);
                                    // start loading the URL;
                                    _stageWebView.loadURL(myAdvertURL);
                    // show the ad by setting it's stage property;
                    _stageWebView.stage = stage;
    function toggleAd(event:MouseEvent):void {
                    trace("toggling advert",_stageWebView);
                    // check that StageWebView instance exists
                    if (_stageWebView) {
                                    trace("_stageWebView.stage:"+_stageWebView.stage);
                                    if (_stageWebView.stage == null) {
                                                    //show the ad by setting the stage parameter
                                                    _stageWebView.stage = stage;
                                    } else {
                                                    // hide the ad by nulling the stage parameter
                                                    _stageWebView.stage = null;
                    } else {
                                    // ad StageWebView doesn't exist - show create it
    function destroyAd(event:MouseEvent):void {
                    // check that the instace of StageWebView exists
                    if (_stageWebView) {
                                    trace("removing advert");
                                    // destroys the ad
                                    _stageWebView.stage = null;
                                    _stageWebView = null;
    function onLocationChange(event:LocationChangeEvent):void {
                    // check that it's not our ad URL loading
                    if (_stageWebView.location != myAdvertURL) {
                                    // destroy the ad as the user has kindly clicked on my ad
                                    destroyAd(null);
                                    // Launch a normal browser window with the captured  URL;
                                    navigateToURL( new URLRequest( event.location ) );
    // setup button listeners
    Hope this works and helps you. If you have questions, let me know. Enjoy.

  • Activation fails when not anwsering an incoming call Air for Android

    Hi,
    I'm developing a game with Adobe AIR for Android; we are handling events for Deactivate (Pausing) / Activate (just tracing for now) of the game.
    It works OK when:  I press home button and then go back. When I get an incoming call and answer it. When I get an incoming call and reject it. They all activate the game when finished
    It doesn’t work when: I get an incoming call and I missed it (no answering, no rejection either) instead of activating the game again a black screen is showed (trace on Activate event is not fired either).
    Did anyone experience the same issue?
    Regards

    I tried the above case on Samsung S4(v4.2.2)(Currently I have with me) with latest AIR SDK available at http://www.adobe.com/devnet/air/air-sdk-download.html and I am getting the activate and deactivate event if I get an incoming call and I missed it. Below is the code snippet I used. Please update if you are using something different.
    stage.addEventListener(Event.ACTIVATE,onActivate);
    stage.addEventListener(Event.DEACTIVATE, onDeactivate);
    protected function onDeactivate(event:Event):void
    // TODO Auto-generated method stub
    trace("In the deactivate method..........");
    protected function onActivate(event:Event):void
    // TODO Auto-generated method stub
    trace("In the activate method...........");
    Could you please share the 3.7 version using adt -version command on either terminal or command promt. You can find adt at AIRSDK/bin folder.
    Regards,
    Nimit

Maybe you are looking for