Using AIR for a modern HTML5 app

Hello
We're in the process of planning out an app that would end up being a 'packaged' app that can run on mobile (iOS + Android) and desktop (Mac and Windows).
HTML5/CSS/Javascript is our natural choice for developing a responsive UI that looks good on the various screens, in portrait and landscape.
I'm aware of tools like PhoneGap that can help package an HTML5 app for mobile devices, but what about desktop?
My concerns are that the WebKit engine used by the AIR compiler is not up to date enough to handle a modern app that requires:
- Responsive  framework such as Bootstrap, that uses more recent HTML tags and CSS attributes
- Video playback with controls
Perhaps StageWebView would be the way to go in this regards, but I don't know enough about the limitations. I'm just looking for basic confirmation that AIR could be used in my situation. If not I'd be interested in hearing ideas for other HTML5 desktop app packagers. Thanks!

You can pass a Boolean to the constructor of the StageWebView class where you can tell AIR to either use the webkit which is embedded in AIR [new StageWebView(false)] or make use of the webkit which is system's default [new StageWebView(true)].
Using "true" for the constructor I have so far not encountered any problems in displaying complex HTML(5)/CSS/JavaScript content within the StageWebView.
Please bear in mind that this is an opinion based answer.

Similar Messages

  • How to embed and launch ipa file from another ipa package created using Air for iOS

    Hi Guys,
    Anybody out there knowing how to embed and launch ipa file from another ipa package created using Air for iOS ?
    I am having 1 ipa file created using Xcode, Now i need to include that file in my ipa Package which is created using Flash CS 5.5 and Air for iOS. Also i need to know how to open my 1st ipa file from AS3 ?
    Thanks,

    Hi Sir,
    Thanks for your reply.
    But in that case user need to download 2 applications right. I need user to download my parent application created using Flash and that package contain one more ipa created using Xcode, so from my parent app only user should able to open my 2nd app. Is there any way to do that?
    Ps:  I am not talking about in-app but 2 individual apps inside one package.

  • Useful link for Beginners in Oracle Apps

    Hi All,
    http://www.exforsys.com/content/category/17/260/342/
    this is a very useful link for starters in Oracle Apps to get to know the concepts.Crisp n Clear.
    Hope this helps.

    The only problem is that it is an exact replica of the oracle documentation in html format :)
    Sam
    http://appstech-sam.blogspot.com

  • AIR for iOS, Getting HTML5 Video to Autoplay in a StageWebView?

    Hi all,
    The video performance I get from the built in FLV video is pretty poor. I'm considering using a StageWebView to display a HTML5 page with a standard <video> in it.
    The video shows up and (if I enable controls) can be played and it looks great (much better than FLV). The only issue is I cannot find a way to have the video autoplay once the StageWebView is loaded.
    I've set the <video .... autoplay> parameter. I've also tried using JavaScript to send a video.play() (after the window load event is complete and the DOM is ready).
    Has anyone figured this out?
    I can't wait for AIR3.0 so we can just use StageVideo.. But for now I'm using AIR2.7 via Flash CS5.5 publishing for an iPad2 via AIR for iOS.
    Thanks for any tips!

    This was a pretty old post. In the advent of StageVideo it doesn't really matter anymore. StageVideo is GPU and you can autoplay all you like.
    BTW there was an old project I'm unsure if it still exists but it was called StageWebViewBridge (SWVB) that reconnected AS3 and JS. You could call methods in JavaScript right from ActionScript the same way fscommand/externalInterface works. So you could force the video to start playing using that.

  • AIR for iOS 3.1 - App name no longer working?

    I have named my app "Someapp 123" and mysteriously the app continuously drops the "123" portion of the name. It used to appear just fine.
    Yesterday I noticed AIR3.1 was released and I overlayed that. Has anyone else overlayed AIR3.1? Notice your app name not completely working?
    FWIW it is an iPad-only app. The provision clearly states the name of the app is "Someapp 123". In AIR for IOS settings I have the "App Name" parameter set properly as well.

    My app name is a small word with a number after it, e.g. "Some 123". No ampersands or anything fancy.
    I did not know that it republished the XML if I published from the iOS panel but I even see hitting "OK" in that panel re-writes the XML file (because you need to put a password in for the p12 every time before publishing) and that overwrites it.
    I edited the re-created XML file, removed junk whitespace and changed my app name to a single word "Testapp". I publish with alt+shift+f12 typically which is the same as the file menu. I hit file->Publish anyhow and I can verify yes indeed it did not overwrite my XML file. Unfortunately the app was not named "Testapp", it was still named what I had named the SWF file. I verified the XML was not overwritten and it was not.
    I noticed there's a <name> and also a <filename>. The <filename> does not have SWF applied to it and there is also an attribute <content> which actually points to the SWF. I'm not sure why both <filename> and <content> exists but I went and changed the <filename> to the app title I wanted. So both <name> and <filename> are now "Testapp". I published with file->publish and low and behold, the name of the app is now "Testapp".
    Why would flash choose to use <filename> over <name>?
    Here is a full example of my XML file:
    <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
    <application xmlns="http://ns.adobe.com/air/application/3.1">
      <id>com.mycompany.AppID</id>
      <versionNumber>1.4</versionNumber>
      <filename>Testapp</filename>
      <description/>
      <name>Testapp</name>
      <copyright/>
      <initialWindow>
        <content>MyFile.swf</content>
        <systemChrome>standard</systemChrome>
        <transparent>false</transparent>
        <visible>true</visible>
        <fullScreen>true</fullScreen>
        <aspectRatio>landscape</aspectRatio>
        <renderMode>gpu</renderMode>
        <autoOrients>true</autoOrients>
      </initialWindow>
      <icon>
        <image29x29>AppIconsForPublish/29.png</image29x29>
        <image57x57>AppIconsForPublish/57.png</image57x57>
        <image114x114>AppIconsForPublish/114.png</image114x114>
        <image48x48>AppIconsForPublish/48.png</image48x48>
        <image72x72>AppIconsForPublish/72.png</image72x72>
        <image512x512>AppIconsForPublish/t512.png</image512x512></icon>
      <customUpdateUI>false</customUpdateUI>
      <allowBrowserInvocation>false</allowBrowserInvocation>
      <iPhone>
        <InfoAdditions>
          <![CDATA[<key>UIDeviceFamily</key><array><string>2</string></array>]]>
        </InfoAdditions>
        <requestedDisplayResolution>standard</requestedDisplayResolution>
      </iPhone>
    </application>
    Anything in there seem odd? Again I'm using the AIR 3.1 SDK so I'm using that namespace. Anything I put in <filename> is now the app name, however in iTunes it continues to say "Unknown Ge..." which is pretty unprofessional. Although the icon works fine. When syncing I see the value in the <filename> field, as it will say "Syncing Testapp...".

  • Using AIR for all application.

    Hi to all!
    In this days i'm trying to use Adobe AIR with FLEX to build
    RIA on Desktop and other application (like company managment and
    other:) In past i used VB .NET, C++, C#, and JAVA. I know that this
    are the language for "antonomasia" to build company managment
    software, but for you, what is the negative aspect to use AIR in
    Desktop application? For example:
    - Performane? (Database handling is not optimal, or other
    issue....)
    - Using AIR interpreters means up RAM and CPU usage, or
    others?
    - Other..
    Thanks boys!

    Its possible but you would need to tell each movieclip and audioclip to play/pause. You can create a for loop inside your mouse event function to find each movieclip and pause/play its timeline and a separate for loop for audio clips. Also instead of setting fame rate to 0 for pause just use a stop() command.

  • Using AIR for desktop

    is drag'n'drop from system and back possible?
    i would like to build an air desktop drop zone area.
    it would be cool when i can use flex for building desktop gadgets.
    last time i checked it was not possible to drop content to air at all.
    hence a cs4 floating icon which offers all programs as icons for opening a file on mouse move over.

    Here is information on building Flex-based applications that use drag-and-drop functionality:
    http://help.adobe.com/en_US/AIR/1.5/devappsflex/WS5b3ccc516d4fbf351e63e3d118666ade46-7e8a. html
    http://www.adobe.com/devnet/air/flex/quickstart/scrappy_copy_paste.html
    And here is information on processing arguments passed into an AIR application when it is invoked:
    http://help.adobe.com/en_US/AIR/1.5/devappsflex/WS5b3ccc516d4fbf351e63e3d118676a5d46-8000. html

  • Been using Firefox for years, deleted Babylon app & now I can't launch Firefox at all. I've uninstalled & reinstalled Firefox, rebooted, but that didn't solve the problem. Am I condemned to IE?

    On 3/18 I used Firefox to download a translation app called Babylon to my Dell Latitude laptop - running XP Pro. I checked out the app, got all the pop-ups asking me to buy spinoff products & uninstalled Babylon. When I rebooted I couldn't open Firefox.
    I started investigating, came up with a weird Pareto Logic UUS error, fixed that. Unistalled Firefox through the Control Panel. Used IE to again download & install latest Firefox. At the end of installation, the dialog box askes "Lauch Firefox now?" which I checked & clicked the Finish button. Nothing happened. I rebooted & tried to launch Firefox from the Start menu, then from the root .exe - no luck. IE launches fine; I just want my Firefox back!

    i wish i could paste the error message but it is

  • Can we create ios inapp browser using air for ios ?

    I dont know if this is right ,
    but ive saw apps in the appstore that have a build in inapp browser , that handle requests  such as button / naviagate to url in that particular in app browser .
    in app browser , works as safari altranative  in  the app .
    what i was thinking off is webview . since web views exists we can create inapp browser . i just dont know how to do it .
    for example i want to create an rss page , when clicking the rss contentent it should leads you to safari , instead i want it to be laoded in the inapp browser

    I think that is all default behaviour... as in, it already does what you want...
    Here, try it:
    This is your basic app:
    [code]
    package
    import flash.desktop.NativeApplication;
    import flash.display.DisplayObject;
    import flash.display.Shape;
    import flash.display.SimpleButton;
    import flash.display.Sprite;
    import flash.display.StageAlign;
    import flash.display.StageScaleMode;
    import flash.events.BrowserInvokeEvent;
    import flash.events.Event;
    import flash.events.InvokeEvent;
    import flash.events.LocationChangeEvent;
    import flash.events.MouseEvent;
    import flash.geom.Rectangle;
    import flash.media.StageWebView;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.text.TextFieldType;
    import flash.text.TextFormat;
    public class SWV extends Sprite
      public static const START_URL:String = "http://forums.adobe.com/message/4815409#4815409";
      public static const URL_SCHEME:String = "demourlscheme://";
      public function SWV()
       super();
       // support autoOrients
       stage.align = StageAlign.TOP_LEFT;
       stage.scaleMode = StageScaleMode.NO_SCALE;
       if(StageWebView.isSupported) {
        // respond to app resize
        stage.addEventListener(Event.RESIZE,doLayout);
        // build browser
        createChildren();
        // layout
        doLayout();
        // initialise with default url
        processUrl();
        // handle any invocations
        listenForInvocation();   
       } else {
        createUnsupportedChildren();
       * Intercept launch requests to process for requested urls.
      protected function listenForInvocation():void {
       NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE,processInvoke);
       NativeApplication.nativeApplication.addEventListener(BrowserInvokeEvent.BROWSER_INVOKE,pr ocessBrowserInvoke);
       * Send invoke arguments to StageWebView */
      protected function processInvoke(event:InvokeEvent):void {
       trace("Invoked with: "+event.arguments);
       handleInvoke(event.arguments.toString());
       * Send browser invoke arguments to StageWebView */
      protected function processBrowserInvoke(event:BrowserInvokeEvent):void {
       trace("Browser invoked with: "+event.arguments);
       handleInvoke(event.arguments.toString());
       * Interpret custom url scheme to set url in StageWebView */
      protected function handleInvoke(s:String):void {
       if(s && s.length>URL_SCHEME.length) {
        urlField.text = "http://"+s.substr(URL_SCHEME.length);
        trace("HANDLING INVOKE "+s+"\n\t>>"+urlField.text);
        processUrl();
       * When normal navigation occurs, location changing will be called before location change so can
       * rewrite url if custom url scheme is used. */
      protected function locationChangingHandler(event:LocationChangeEvent):void {
       trace("Location changing to "+event.location);
       if(event.location.substr(0,URL_SCHEME.length)==URL_SCHEME) {
        trace("Intercepting app launch and redirecting...");
        event.preventDefault();
        handleInvoke(event.location);
       * Update location bar after a location change. */
      protected function locationChangeHandler(event:LocationChangeEvent):void {
       trace("Location changed to "+event.location);
       urlField.text = event.location;
       * Browser back button */
      protected function processBack(event:MouseEvent=null):void {
       if(webView.isHistoryBackEnabled) webView.historyBack();
       * Browser forward button */
      protected function processFwd(event:MouseEvent=null):void {
       if(webView.isHistoryBackEnabled) webView.historyForward();
       * Browser go button */
      protected function processUrl(event:MouseEvent=null):void {
       var s:String = urlField.text;
       webView.loadURL(s);
       * Build basic browser functionality... */
      protected function createChildren():void {
       var tf:TextField;
       var tft:TextFormat = new TextFormat();
       tft.size = 30;
       urlField = new TextField();
       urlField.defaultTextFormat = tft;
       urlField.border = true;
       urlField.height = 50;
       urlField.multiline = false;
       urlField.type = TextFieldType.INPUT;
       urlField.text = START_URL;
       addChild(urlField);
       backButton = new Sprite();
       backButton.graphics.beginFill(0xc0c0c0,1);
       backButton.graphics.lineStyle(1,0,1);
       backButton.graphics.drawRoundRect(0,0,50,50,10,10);
       tf = new TextField();
       tf.defaultTextFormat = tft;
       tf.selectable = false;
       tf.autoSize = TextFieldAutoSize.LEFT;
       tf.text = "<";
       tf.x = 0;
       tf.y = 0;
       backButton.addChild(tf);
       backButton.addEventListener(MouseEvent.CLICK,processBack);
       addChild(backButton);
       fwdButton = new Sprite();
       fwdButton.graphics.beginFill(0xc0c0c0,1);
       fwdButton.graphics.lineStyle(1,0,1);
       fwdButton.graphics.drawRoundRect(0,0,50,50,10,10);
       tf = new TextField();
       tf.defaultTextFormat = tft;
       tf.selectable = false;
       tf.autoSize = TextFieldAutoSize.LEFT;
       tf.text = ">";
       tf.x = 0;
       tf.y = 0;
       fwdButton.addChild(tf);
       fwdButton.addEventListener(MouseEvent.CLICK,processFwd);
       addChild(fwdButton);
       urlButton = new Sprite();
       urlButton.graphics.beginFill(0xc0c0c0,1);
       urlButton.graphics.lineStyle(1,0,1);
       urlButton.graphics.drawRoundRect(0,0,50,50,10,10);
       tf = new TextField();
       tf.defaultTextFormat = tft;
       tf.selectable = false;
       tf.autoSize = TextFieldAutoSize.LEFT;
       tf.text = "Go";
       tf.x = 0;
       tf.y = 0;
       urlButton.addChild(tf);
       urlButton.addEventListener(MouseEvent.CLICK,processUrl);
       addChild(urlButton);
       var swv:StageWebView = new StageWebView();
       webView = swv;
       webView.stage = stage;
       webView.addEventListener(LocationChangeEvent.LOCATION_CHANGING, locationChangingHandler);  
       webView.addEventListener(LocationChangeEvent.LOCATION_CHANGE, locationChangeHandler);  
      protected function createUnsupportedChildren():void {
       var tf:TextField;
       tf = new TextField();
       tf.text = "Sorry, that's not supported...";
       tf.x = (stage.width-tf.width)/2;
       tf.y = (stage.height-tf.height)/2;
       addChild(tf);
      protected var urlButton:Sprite;
      protected var backButton:Sprite;
      protected var fwdButton:Sprite;
      protected var urlField:TextField;
      protected var webView:StageWebView;
       * Reorganise after a stage resize */
      protected function doLayout(event:Event=null):void {
       var xpos:int = 0;
       var ypos:int = 0;
       backButton.x = xpos;
       backButton.y = ypos;
       xpos += backButton.width;
       fwdButton.x = xpos;
       fwdButton.y = ypos;
       xpos += fwdButton.width;
       urlField.x = xpos;
       urlField.y = ypos;
       urlField.width = stage.stageWidth-urlField.x-urlButton.width;
       xpos += urlField.width;
       urlButton.x = xpos;
       urlButton.y = ypos;
       xpos = 0;;
       ypos = urlField.x+urlField.height+1;
       webView.viewPort = new Rectangle(xpos,ypos,stage.stageWidth-xpos,stage.stageHeight-ypos);
    [/code]
    This is what you need in the app descriptor xml:
    [code]
    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <application xmlns="http://ns.adobe.com/air/application/2.6">
    <!-- A universally unique application identifier. Must be unique across all AIR applications.
    Using a reverse DNS-style name as the id is recommended. (Eg. com.example.ExampleApplication.) Required. -->
    <id>SWV</id>
    <!-- Used as the filename for the application. Required. -->
    <filename>SWV</filename>
    <!-- The name that is displayed in the AIR application installer.
    May have multiple values for each language. See samples or xsd schema file. Optional. -->
    <name>SWV</name>
    <!-- A string value of the format <0-999>.<0-999>.<0-999> that represents application version which can be used to check for application upgrade.
    Values can also be 1-part or 2-part. It is not necessary to have a 3-part value.
    An updated version of application must have a versionNumber value higher than the previous version. Required for namespace >= 2.5 . -->
    <versionNumber>0.0.0</versionNumber>
    <!-- Settings for the application's initial window. Required. -->
    <initialWindow>
      <!-- The main SWF or HTML file of the application. Required. -->
      <!-- Note: In Flash Builder, the SWF reference is set automatically. -->
      <content>[This value will be overwritten by Flash Builder in the output app.xml]</content>
    <autoOrients>true</autoOrients>
            <fullScreen>false</fullScreen>
            <visible>true</visible>
        </initialWindow>
    <!-- Whether the application can be launched when the user clicks a link in a web browser.
    Optional. Default false. -->
    <allowBrowserInvocation>true</allowBrowserInvocation>
    <android>
      <manifestAdditions>
       <![CDATA[  
    <manifest android:installLocation="auto">
      <application android:enabled="true">
       <activity android:excludeFromRecents="false">
        <intent-filter>
         <action android:name="android.intent.action.MAIN" />
         <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
         <action android:name="android.intent.action.VIEW" />
         <category android:name="android.intent.category.BROWSABLE" />
         <category android:name="android.intent.category.DEFAULT" />
         <data android:scheme="demourlscheme" />
        </intent-filter>
       </activity>
      </application>
      <!--Removing the permission android.permission.INTERNET will have the side
       effect of preventing you from debugging your application on your device -->
      <uses-permission android:name="android.permission.INTERNET" />
    </manifest>    
       ]]>
      </manifestAdditions>
    </android>
    <iPhone>
      <InfoAdditions>
       <![CDATA[  
    <key>CFBundleURLTypes</key>
    <array>
      <dict>
       <key>CFBundleURLSchemes</key>
       <array>
        <string>demourlscheme</string>
       </array>
       <key>CFBundleURLName</key>
       <string>com.tweak.gustavo.mobiletest</string>
      </dict>
    </array>   
       ]]>
      </InfoAdditions>
      <requestedDisplayResolution>high</requestedDisplayResolution>
    </iPhone>
    </application>
    [/code]
    And this is a sample HTML page to get it to work (once your app is installed):
    [code]
    <html>
    <body>
    <a href="demourlscheme://www.adobe.com">Open adobe in app</a>
    </body>
    </html>
    [/code]

  • I have $15 on my account and can't use it for a $14.99 app.  What's wrong?

    I'm trying to use my $15 on my account to purchase an app for $14.99. It keeps asking for payment info.  What's wrong?

    If there's tax on that item, it's increasing the price to an amount higher than your available credit.
    (114231)

  • Use NitroX for non-Struts web app?

    empty

    Yes, you can import an existing JSP app in the same way you import a Struts
    app. The process is explained in chapter 8 of the Starting Guide.
    Creating new apps is currently limited to Struts. This will be fixed in
    future builds.
    M7 Support
    "Michael Schulz" <[email protected]> wrote in message
    news:40853b94$[email protected]..
    I have an existing (non-Struts) web app that I would like toimport into NitroX - does NitroX support non-Struts apps?
    I tried to create a generic web app, but NitroX seems
    to require a struts-type selection to be made.
    -Mike

  • Swipe Gestures using Air for ios

    I have created this code so I can swipe through some different colour ways of a product.
    It works if you are swiping left and goes through all the colours. The problem I am now having is it will swipe right only once it get to the end and only on CPXCBLUE.
    Could anyone see what maybe wrong with this coding please????
    Cheers
    Tim
    Multitouch.inputMode = MultitouchInputMode.GESTURE;
    import fl.transitions.Tween;
    import fl.motion.easing.Sine;
    CPXCRED.addEventListener( TransformGestureEvent.GESTURE_SWIPE, onSwipe );
    CPXCGREEN.addEventListener( TransformGestureEvent.GESTURE_SWIPE, onSwipe );
    CPXCWHITE.addEventListener( TransformGestureEvent.GESTURE_SWIPE, onSwipe );
    CPXCBLUE.addEventListener( TransformGestureEvent.GESTURE_SWIPE, onSwipe );
    function onSwipe( event:TransformGestureEvent ):void
              if( event.target == CPXCRED )
                        if( event.offsetX == -1 )
                                  var t1:Tween = new Tween( CPXCRED, "x", Sine.easeOut, CPXCRED.x, -320, 0.3, true );
                                  var t2:Tween = new Tween( CPXCGREEN, "x", Sine.easeOut, CPXCGREEN.x, 320, 0.3, true );
                                  var t3:Tween = new Tween( CPXCWHITE, "x", Sine.easeOut, CPXCWHITE.x, 960, 0.3, true );
                                  var t4:Tween = new Tween( CPXCBLUE, "x", Sine.easeOut, CPXCBLUE.x, 960, 0.3, true );
              else if( event.target == CPXCGREEN )
                        if( event.offsetX == -1 )
                                  var t1b:Tween = new Tween( CPXCRED, "x", Sine.easeOut, CPXCRED.x, -320, 0.3, true );
                                  var t2b:Tween = new Tween( CPXCGREEN, "x", Sine.easeOut, CPXCGREEN.x, -320, 0.3, true );
                                  var t3b:Tween = new Tween( CPXCWHITE, "x", Sine.easeOut, CPXCWHITE.x, 320, 0.3, true );
                                  var t4b:Tween = new Tween( CPXCBLUE, "x", Sine.easeOut, CPXCBLUE.x, 960, 0.3, true );
                                  if( event.offsetX == 1 )
                                  var t1a1:Tween = new Tween( CPXCRED, "x", Sine.easeOut, CPXCRED.x, 320, 0.3, true );
                                  var t2a1:Tween = new Tween( CPXCGREEN, "x", Sine.easeOut, CPXCGREEN.x, 960, 0.3, true );
                                  var t3a1:Tween = new Tween( CPXCWHITE, "x", Sine.easeOut, CPXCWHITE.x, 960, 0.3, true );
                                  var t4a1:Tween = new Tween( CPXCBLUE, "x", Sine.easeOut, CPXCBLUE.x, 960, 0.3, true );
              else if( event.target == CPXCWHITE )
                        if( event.offsetX == -1 )
                                  var t1c:Tween = new Tween( CPXCRED, "x", Sine.easeOut, CPXCRED.x, -320, 0.3, true );
                                  var t2c:Tween = new Tween( CPXCGREEN, "x", Sine.easeOut, CPXCGREEN.x, -320, 0.3, true );
                                  var t3c:Tween = new Tween( CPXCWHITE, "x", Sine.easeOut, CPXCWHITE.x, -320, 0.3, true );
                                  var t4c:Tween = new Tween( CPXCBLUE, "x", Sine.easeOut, CPXCBLUE.x, 320, 0.3, true );
                        if( event.offsetX == 1 )
                                  var t1b1:Tween = new Tween( CPXCRED, "x", Sine.easeOut, CPXCRED.x, -320, 0.3, true );
                                  var t2b1:Tween = new Tween( CPXCGREEN, "x", Sine.easeOut, CPXCGREEN.x, 320, 0.3, true );
                                  var t3b1:Tween = new Tween( CPXCWHITE, "x", Sine.easeOut, CPXCWHITE.x, 960, 0.3, true );
                                  var t4b1:Tween = new Tween( CPXCBLUE, "x", Sine.easeOut, CPXCBLUE.x, 960, 0.3, true );
              else if( event.target == CPXCBLUE )
                        if( event.offsetX == 1 )
                                  var t1c1:Tween = new Tween( CPXCRED, "x", Sine.easeOut, CPXCRED.x, -320, 0.3, true );
                                  var t2c1:Tween = new Tween( CPXCGREEN, "x", Sine.easeOut, CPXCGREEN.x, -320, 0.3, true );
                                  var t3c1:Tween = new Tween( CPXCWHITE, "x", Sine.easeOut, CPXCWHITE.x, 320, 0.3, true );
                                  var t4c1:Tween = new Tween( CPXCBLUE, "x", Sine.easeOut, CPXCBLUE.x, 960, 0.3, true );
    stop();

    I change the info as you suggested but it still didn't work.
    My friend had a look and informed me that it is the following area was incorrect:
    else if( event.target == CPXCWHITE )
                        if( event.offsetX == -1 )
                                  var t1c:Tween = new Tween( CPXCRED, "x", Sine.easeOut, CPXCRED.x, -320, 0.3, true );
                                  var t2c:Tween = new Tween( CPXCGREEN, "x", Sine.easeOut, CPXCGREEN.x, -320, 0.3, true );
                                  var t3c:Tween = new Tween( CPXCWHITE, "x", Sine.easeOut, CPXCWHITE.x, -320, 0.3, true );
                                  var t4c:Tween = new Tween( CPXCBLUE, "x", Sine.easeOut, CPXCBLUE.x, 320, 0.3, true );
                        if( event.offsetX == 1 )
                                  var t1b1:Tween = new Tween( CPXCRED, "x", Sine.easeOut, CPXCRED.x, -320, 0.3, true );
                                  var t2b1:Tween = new Tween( CPXCGREEN, "x", Sine.easeOut, CPXCGREEN.x, 320, 0.3, true );
                                  var t3b1:Tween = new Tween( CPXCWHITE, "x", Sine.easeOut, CPXCWHITE.x, 960, 0.3, true );
                                  var t4b1:Tween = new Tween( CPXCBLUE, "x", Sine.easeOut, CPXCBLUE.x, 960, 0.3, true );
    The following coding is correct and works great!!!
    Multitouch.inputMode = MultitouchInputMode.GESTURE;
    import fl.transitions.Tween;
    import fl.motion.easing.Sine;
    CPXCRED.addEventListener( TransformGestureEvent.GESTURE_SWIPE, onSwipe );
    CPXCGREEN.addEventListener( TransformGestureEvent.GESTURE_SWIPE, onSwipe );
    CPXCWHITE.addEventListener( TransformGestureEvent.GESTURE_SWIPE, onSwipe );
    CPXCBLUE.addEventListener( TransformGestureEvent.GESTURE_SWIPE, onSwipe );
    function onSwipe( event:TransformGestureEvent ):void
              if( event.currentTarget == CPXCRED )
                        if( event.offsetX == -1 )
                                  var t1:Tween = new Tween( CPXCRED, "x", Sine.easeOut, CPXCRED.x, -320, 0.3, true );
                                  var t2:Tween = new Tween( CPXCGREEN, "x", Sine.easeOut, CPXCGREEN.x, 320, 0.3, true );
                                  var t3:Tween = new Tween( CPXCWHITE, "x", Sine.easeOut, CPXCWHITE.x, 960, 0.3, true );
                                  var t4:Tween = new Tween( CPXCBLUE, "x", Sine.easeOut, CPXCBLUE.x, 960, 0.3, true );
              else if( event.currentTarget == CPXCGREEN )
                        if( event.offsetX == -1 )
                                  var t1b:Tween = new Tween( CPXCRED, "x", Sine.easeOut, CPXCRED.x, -320, 0.3, true );
                                  var t2b:Tween = new Tween( CPXCGREEN, "x", Sine.easeOut, CPXCGREEN.x, -320, 0.3, true );
                                  var t3b:Tween = new Tween( CPXCWHITE, "x", Sine.easeOut, CPXCWHITE.x, 320, 0.3, true );
                                  var t4b:Tween = new Tween( CPXCBLUE, "x", Sine.easeOut, CPXCBLUE.x, 960, 0.3, true );
                                  if( event.offsetX == 1 )
                                  var t1a1:Tween = new Tween( CPXCRED, "x", Sine.easeOut, CPXCRED.x, 320, 0.3, true );
                                  var t2a1:Tween = new Tween( CPXCGREEN, "x", Sine.easeOut, CPXCGREEN.x, 960, 0.3, true );
                                  var t3a1:Tween = new Tween( CPXCWHITE, "x", Sine.easeOut, CPXCWHITE.x, 960, 0.3, true );
                                  var t4a1:Tween = new Tween( CPXCBLUE, "x", Sine.easeOut, CPXCBLUE.x, 960, 0.3, true );
              else if( event.currentTarget == CPXCWHITE )
                        if( event.offsetX == -1 )
                                  var t1c:Tween = new Tween( CPXCRED, "x", Sine.easeOut, CPXCRED.x, -320, 0.3, true );
                                  var t2c:Tween = new Tween( CPXCGREEN, "x", Sine.easeOut, CPXCGREEN.x, -320, 0.3, true );
                                  var t3c:Tween = new Tween( CPXCWHITE, "x", Sine.easeOut, CPXCWHITE.x, -320, 0.3, true );
                                  var t4c:Tween = new Tween( CPXCBLUE, "x", Sine.easeOut, CPXCBLUE.x, 320, 0.3, true );
                        if( event.offsetX == 1 )
                                  var t1b1:Tween = new Tween( CPXCRED, "x", Sine.easeOut, CPXCRED.x, -320, 0.3, true );
                                  var t2b1:Tween = new Tween( CPXCGREEN, "x", Sine.easeOut, CPXCGREEN.x, 320, 0.3, true );
                                  var t3b1:Tween = new Tween( CPXCWHITE, "x", Sine.easeOut, CPXCWHITE.x, 960, 0.3, true );
                                  var t4b1:Tween = new Tween( CPXCBLUE, "x", Sine.easeOut, CPXCBLUE.x, 960, 0.3, true );
              else if( event.currentTarget == CPXCBLUE )
                        if( event.offsetX == 1 )
                                  var t1c1:Tween = new Tween( CPXCRED, "x", Sine.easeOut, CPXCRED.x, -320, 0.3, true );
                                  var t2c1:Tween = new Tween( CPXCGREEN, "x", Sine.easeOut, CPXCGREEN.x, -320, 0.3, true );
                                  var t3c1:Tween = new Tween( CPXCWHITE, "x", Sine.easeOut, CPXCWHITE.x, 320, 0.3, true );
                                  var t4c1:Tween = new Tween( CPXCBLUE, "x", Sine.easeOut, CPXCBLUE.x, 960, 0.3, true );
    stop();

  • AIR for iOS: Severe performance drop using "high resolution" published app on retina iPhone

    I have created a very simple test app the simply draws a line from the previous to the current mouse/touch position after MOUSE_MOVE is detected. I published the app, stage size 320x480, in both "standard" and "high" resolution using AIR for iOS and added each to two different iPhones, iPhone 3GS and iPhone 4S. I published again, stage size 640x960 in standard and high resolution and placed on both phones.
    320x640 Flash stage size
    - standard resolution on iPhone 3GS: works as expected, no hitches.
    - high resolution on iPhone 3GS: works as expected
    - standard resolution on iPhone 4S: works as expected
    - high resolution on iPhone 4S: hangs occasionally and predictably for a half second or so once 20-30 points have been added to the drawing. Of the 4 tests at 320x640 this is the only one that displays at high res.
    640x960 Flash stage size
    Everything was the same as above. The only test here that diplayed at high res was the high res publish on the iphone 4s as expected. Which showed the same poor performace as above.
    Perhaps this has something to do with the upscaled application trying to keep track of mouse position but I'm stumped. Any ideas?

    I create an app for kids that draws using MOUSE_MOVE, KidFunKit. It's a retina display high-res app, using AIR 2.6 I got performing issues, after I couple of lines were drawn. Using AIR 3.0, it works nice. Obviously if your frame rate is 60 ... you'll expect lack of performance. You may try Starling Framework based on STAGE3D if you want the most of AS3.

  • How can I use a file in flash cs6 that I made in flash cs5.5 air for android

    I have made an app in in air for android in flash cs5.5 air for android, and I want to edit it in cs6 and play it in cs6.
    But if I put Ctrl+Enter I got an error: createWin process failed with error 2: system couldn't find the file. I think the problem is that I'am using air for android 2.6 version in flash cs5.5 and version 3.2 in flash cs6. I have searched the web and found out that you can add older air versions using the sdk manager and I have tried it but first I get the error that the version of the sdk I am trying to install is not valid and after some files that I added to the sdk folder I get this error:Only SDK higher than version 3.4.2540 may be added.
    I there a possible way to update the air for android for an fla or apk? Or how can I let my originally file work fine in flash cs6??

    system couldn't find the file
    If you can´t get a more specific hint why your project can´t compile then I can think of some reasons theis error might occur
    1.You had files included besides the swf, like videos, audio files, xml files, that are not present in the place air expects them to be
    2.somewhere in your createWin functions there is a class import needed that isn`t present in 3.2 anymore, for example some classes or functions from classes that were valid in 2.6 are not any more in 3.2
    3. to achieve better eror logging, allow for debugging in the publishing options and see what specific lines in your code throw the error
    4.any air app needs a cert file, this needs to be created once, if you migrated to e new system it might be you never created that file which air expects to even begin the compiling process
    once you isolate the problem, report back

  • Air for android in app purchases

    Has anyone played around with doing in app purchaces using AIR for android?  if so can you point me in the right direction for setting up something like this?
    Erik

    Hi Jonathan,
    Thanks for your response!
    jonbcampos wrote:
    1) BlackBerry has created a In-App Payment service. You can see more details at the following link. This is one such service to handle in app payments:
    http://devblog.blackberry.com/2011/01/blackberry-payment-service/
    Yes, but the subject of the post is "air for android". Can you use this blackberry service for android? Probably I am missing something.
    jonbcampos wrote:
    2) You can't take money without a few things, most of all a payment gateway. Payment gateway services can be expensive yet nowadays you can work with companies such as paypal and others to use their api to take payments. This is the service that you will have to call out to. Yes, you lose a little money in the transaction but this is the service that you will send payment information to and they are the gateway between you and the credit card companies. Once they have the money they turn around and pay you a percentage of the total sale. This percentage is determined in their fine print, so make sure you know how much each payment gateway is planning on taking from you.
    I know you need some kind of payment gateway. However, I guess the original thread author was requesting the Android Market in-app billing http://developer.android.com/guide/market/billing/index.html . They take 30% if I am not missinformed, but an advantage is that the customer already is registered with google market. Do you see other payment services as more interesting than the google market one when it comes to Android?
    N

Maybe you are looking for

  • I can not navigate through my music directory/play songs on my 3rd gen iPod touch

    I recently picked up a 3rd generation iPod touch used. Before last night I had had no problems with its interface. The music library seems to have completely frozen up on me. I can select the music icon and it just brings me to the page of the last a

  • HP Pavilion G6-2146sl left USB ports not working

    Hi, I have an HP Pavilion G6-2146sl with Windows 7 Ultimate x64... my problem is that the two left USB ports stopped to work properly: for example, when I insert an USB flash drive it turns on but it's not recognized by Windows. The only port wich wo

  • Frozen Screen w/ Error Message

    My ipod vid. was plugged into speakers. When I got home today it said: Accesorize Test Please plug FW LCD:2 FWPWR: 0

  • Catalog TOC Help

    Hey Everybody, I'm working on a catalog for the shelving company I work for. It needs to be in this format In order to build it now I have ID build a TOC based on paragraph styles for the part name and the part numbers then go back and change the tab

  • Ddi_iomin(9F) bug?

    ddi_iomin() is supposed to find the minimum DMA transfer size for the given device. However, in Solaris 9 SPARC it is implemented as a wrapper around a ddi_ctlops() DDI_CTLOPS_IOMIN call. This call looks up the devinfo pointer in the original devinfo