AIR application breaks session in Safari

Hello everybody,
I have found strange behaviour of WebKit (I suppose). Following problem I observe under MacOS:
Open Safari and establish connection to a site using login/password (let say: USER1) to keep the session (eg. Delicious.com)
Open AIR and establish connection with the same site but with different login/password (let say: USER2)
Back to the Safari - the session of USER1 is broken by session of USER2!
I suspect WebKit (which is used both in the Safari and AIR) shares the session in the same way like tabs in the same browser. What shall I set to avoid the problem. I want to have treated session established by AIR application as a separate one, without interfering with Safari... Can I instantiane "another" WebKit for my AIR application? Have you any idea?
Thanks in Advance!

Hi,
I tried the same thing on Windows with Google Chrome(Uses Webkit) with Delicious.com in browser i logged in with my gmail account and in AIR App I logged in using yahoo ID. I can still use my chrome session.
tomorrow I will check on Mac OS and get back to you.
meanwhile can check if this is happening with all the sites using Sessions?
Also, can you check if you can reproduce the issue with Chrome on Mac? (Chrome-AIR and Chrome-Safari)
Thanks,
Saumitra Bhave
Software Engineer
AIR-Linux

Similar Messages

  • AIR application not appearing in GotoMeeting Session

    I was demo-ing an AIR application last Friday, but the group
    that was on the GotoMeeting session was not a able to see the app.
    That particular desktop window was not being transmitted. I've also
    noticed a similar issue when trying to screen capture an AIR window
    locally on my laptop which is running Windows XP. It's as if that
    window does not exist and there is nothing to capture. Known bug?
    Thanks,
    -Frank

    Hi Naveen,
    It will be most probably because of Security not defined for this new application in the "Member Access profile". Please check.
    Thanks & Regards
    Arun Kumar S

  • MacBook Air update breaks Safari

    I just updated my MacBook Air this evening, and now Safari refuses to work. I've repaired permissions, dumped the preferences for Safari, tried restoring from Time Machine, restarted several times, and still Safari hangs up on opening and refuses to start. Firefox works, but not Safari. Anyone else having issues with this? Suggestions?

    Karen,
    Unfortunately... this is where it gets a little tricky. The fact that Safari works without an issue in another user would indicate that the problem was not with the update (itself) or the application. But rather something that was modified via the update which affects the Safari application. A plug-in, a toolbar, something along those lines.
    I'm not a "wiz" when it comes to Safari troubleshooting of this nature but the first place to start would be with the application itself. If you go to the Safari.app in Finder and "Show Package Contents" it should be bring you into a new view that shows one folder (contents). Within that folder I have the following items: (this is off a clean installed, test OS environment)
    - CodeResources
    - Info.plist
    - MacOS (folder)
    - PkgInfo
    - Resources (folder)
    - SafairSyncClient
    - version.plist
    One thing you might also want to try would be to delete the following folders in your User/Library
    - Safari (entire folder)
    - Preferences (content of folder, leave folder)
    - Caches (content of folder, leave folder)
    - Internet Plug-Ins (content of folder, leave folder)
    It's also possible that there's something with QuickTime that might be affecting Safari. It seems like a stretch, but the next step might be to remove and re-install all associations of that Application as well.
    Make sure whenever removing an application you also remove its receipt so Software Updater is "up to date" on what's installed or not installed. That folder is located off the root level Library, not the User level.
    Ultimately an Archive & Install might be the best solution, however the fact that the application works in another user would typically indicate that an Archive & Install would not resolve the issue but rather bring it right back. With that being said, an Archive & Install (without preserving user and settings) would then do the trick. But it would involve reimporting your entire user directory, which may take a while.

  • Communication problem between air application from swf at browser

    Hi,
    I am trying to communicate adobe air native application from brwser using swf, I check for native application installed or not. If installed then launch and if not then install and launch.
    I am facing problem when browser crashes and communication get lost with adobe air native application. And when user restart web browser and try to make local connection for communication with native application, some times it get failed. so, how to handle this state please help.
    Thanks
    Nitesh Kumar

    Hi sinious,
    How could I clean up connection when browser is aborted or lost?
    below you can find the code snippet to check for air application and connection
    airSWFLoader = new Loader();
                                  loaderContext = new LoaderContext();
                                  loaderContext.applicationDomain = ApplicationDomain.currentDomain;
                                  airSWFLoader.contentLoaderInfo.addEventListener(Event.INIT, onInit);
                                  airSWFLoader.load(new URLRequest("http://airdownload.adobe.com/air/browserapi/air.swf"),loaderContext);
    function onInit(e:Event):void 
                                  airSWF = e.target.content; 
                                  switch(airSWF.getStatus().toString())
                                            case "available" : AirLoaderStatus = 1;
                                            break;
                                            case "unavailable" : AirLoaderStatus = 2;
                                            break;
                                            case "installed" : AirLoaderStatus = 3;
                                            break;
    private function getAppStatus():void
                                  clearInterval(intervalIdentifier);
                                  if(AirLoaderStatus == 0){intervalIdentifier = setInterval(getAppStatus,1000);return;}
                                  m_launchInstallBtn.visible = true;
                                  var statusInfo:String = airSWF.getStatus();
                                  airSWF.getApplicationVersion(m_installerFileName, m_pubID, versionDetectCallback);
    function versionDetectCallback(version:String):void
                                  if (version == null)
                                            trace("Not Installed");
                                            // Take appropriate actions. For instance, present the user with
                                            // an option to install the application.
                                  else
                                            m_isPluginsInstalled = true;
                                            // Take appropriate actions. For instance, enable the
                                            // user interface to launch the application.
    private function onlickMouse(event:MouseEvent):void
                                  m_text.text += "\nm_isPluginsInstalled:"+m_isPluginsInstalled+":::AirLoaderStatus:"+AirLoaderStatus;
                                  trace("\nm_isPluginsInstalled:"+m_isPluginsInstalled+":::AirLoaderStatus:" +AirLoaderStatus);
                                  switch(event.currentTarget)
                                            case m_launchInstallBtn:
                                                         if(AirLoaderStatus == 1)
           installAirsetup();
                                                      else
                                                                if(!m_isPluginsInstalled)
                                                                          airSWF.installApplication(m_url, m_runtimeVersion, m_argsToPass);
                                                                          airSWF.launchApplication(m_installerFileName, m_pubID, m_argsToPass);
                                                                else
                                                                          airSWF.launchApplication(m_installerFileName, m_pubID, m_argsToPass);
                                            break;
    in the above code snippet I pass localConnection for send and recieve as an argument in m_argsToPass.
    the connection names strarts with "_".
    In the air application I I split the event arguments like given below
    argsArray = event.arguments.toString().split(",");
    and then try to establish connection.
    Please suggest, how could I clean the connection on lost/ abort of browser, since then swf object embeded in browser also get lost.

  • How can i reopen all windows from last session on safari 6?

    how can i reopen all windows from last session on safari 6?
    finally found it .... sorry ...
    Response:
    System Preferences > General
    Uncheck "Close windows when quitting an application"
    Close
    Ensure you have empty the Homepage on Safari
    Safari > Preferences
    Homepage = empty

    Or...  from the Safari menu bar click History > Reopen All Windows from Last Session

  • AIR application with Flex 4.5 will not render content. What gives?

    OK,
    So I've upgraded to Flash Builder 4.5 Premium and I am unable to develop desktop AIR applications with the 4.5 Flex SDK. I start by simply creating a brand new AIR application using the default SDK (Flex 4.5). I set the title property on WindowedApplication and include a simple Label component. The project compiles fine but when I run the application all I see is the adl window in the dock but that's it. If I modify the Main-app.xml file to set the visible attribute to true, I will get a small window but there is no content although the output window shows the application swf being loaded. Checking the release version of the Main-app.xml file shows the correct path location to the swf.
    Here is what I've tried so far:
    Install/reinstall Flash Builder, 4+ times
    Downloaded the trial installation twice
    Downloaded the SDK's for 3.6, 4.1 and 4.5.0. I then copied each SDK folder and merged the AIR 2.6 SDK with each copy. So now I have 6 SDK versions; one pristine and the other with the AIR 2.6 SDK merged. I then added each SDK individually and created an AIR desktop application for each. Each and every one works fine with the exception of the two 4.5 SDK's. They will not render content.
    I created a simple creation complete handler for the application that declares a simple variable and assigns a value to it. I then put a break point on the assignment and it never gets caught. More evidence that the swf isn't getting loaded.
    The computer I'm running on is a Mac Book Pro with Snow Leopard 10.6.7. If I create a web project in each of the 6 SDK's, those will work just fine. What the heck is it with Flex 4.5 and the AIR 2.6 SDK on this machine? I have the AIR 2.6 runtime installed as well as a number of AIR applications that work just fine. I also tried my 4.5 test on my windows machine and that worked like a champ.
    I am completely out of ideas. Finding information has been difficult because everyone is all about mobile so searching for desktop issues is a losing battle. I realize this is a long email but I'm desperate for help. There must be someone out there that knows more about the low level interaction between Flex 4.5/AIR 2.6 and the OS.

    Well, I finally found the issue, a corrupted mm.cfg file in /Library/Application Support/Macromedia. I deleted the file and then adl ran just fine.

  • How to play and stop flv files through NetStream in AIR Application

    Hi,
    In a folder I have 'n' number of flv file, which are DRM protected. when the user try to play those files for the first time through my AIR application, it will prompt for username and password and gets the license/voucher from the server and store it in AIR Runtime. so that from the next time onwords it won't prompt for username and password as because it already has license/voucher.
         My problem is assume there are 500 files, such that for each file the user has to enter his credentials[username and password]. which is a stupid thing. I want to avoid this process by implementing this process internally/programetically. By playing/accessing each file through netstream from the folder and setDRMAuthenticationCredentials for that file and stop the stream. Here I am able to play each file but I am failed to stop it. I mean to say I will get the license for all the flv files internally[while loading my AIR application], such that user should not be interrupted for his credentials for each file.He should play as if he is accessing/playing a non-DRM protected file. I will be very thank full if any one help me out in this.
    public function init():void {
          connectStream();
          getLicenseForAllFiles();
          videoStream.addEventListener(DRMAuthenticateEvent.DRM_AUTHENTICATE, drmAuthenticateEventHandler);
          ppt_videoStream.addEventListener(DRMAuthenticateEvent.DRM_AUTHENTICATE, ppt_drmAuthenticateEventHandler);
            private function getFilesRecursive(rootFolderPath:String):void {
                //the current folder object
                var currentFolder:File = new File(rootFolderPath);
                //the current folder's file listing
                var files:Array = currentFolder.getDirectoryListing();
                //iterate and put files in the result and process the sub folders recursively
                for (var f = 0; f < files.length; f++) {
                    if (files[f].isDirectory) {
                        if (files[f].name !="." && files[f].name !="..") {
                            //it's a directory
                            getFilesRecursive(files[f].nativePath);
                    } else {
                        //it's a file
                        fileList.push(files[f].nativePath);
                        //Alert.show(""+files[0].nativePath);
                        var fileName:String = files[f].name;
                        if(fileName.indexOf("PPT_")!=-1){
                            ppt_videoStream.play(files[f].nativePath);
                            ppt_videoStream.pause();
                        videoStream.play(files[f].nativePath);
                        videoStream.pause();
                private function connectStream():void {
                    videoConnection = new NetConnection();
                    videoConnection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
                    videoConnection.connect(null);
                    ppt_videoConnection = new NetConnection();
                    ppt_videoConnection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
                    ppt_videoConnection.connect(null);
                    videoStream = new NetStream(videoConnection);
                    videoStream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
                    video.attachNetStream(videoStream);
                    ppt_videoStream = new NetStream(ppt_videoConnection);
                    ppt_videoStream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
                    ppt_video.attachNetStream(ppt_videoStream);
             private function netStatusHandler(event:NetStatusEvent):void {
                switch (event.info.code) {
                    case "NetConnection.Connect.Success":
                        //connectStream();
                        break;
                    case "NetStream.Play.StreamNotFound":
                        trace("Unable to locate video: " + videoURL);
                        break;
                private function drmAuthenticateEventHandler(event:DRMAuthenticateEvent):void {
                    videoStream.setDRMAuthenticationCredentials("adobe", "adobe", "drm");
                private function ppt_drmAuthenticateEventHandler(event:DRMAuthenticateEvent):void {
                    ppt_videoStream.setDRMAuthenticationCredentials("adobe", "adobe", "drm");
    Thanks
    Sudheer Puppala

    Hi,
    Please go through following links..this will help you:
    http://lucamezzalira.com/2009/02/28/create-pdf-in-runtime-with-actionscript-3-alivepdf-zin c-or-air-flex-or-flash/
    http://forums.adobe.com/thread/753959
    http://blog.unthinkmedia.com/2008/09/05/exporting-pdfs-in-flex-using-alivepdf/
    Thanks and Regards,
    Vibhuti Gosavi | [email protected] | www.infocepts.com

  • Android Video play via AIR application is jerky

    Hi All,
      We are developing an AIR mobile application targetted for Android 2.2 or above. One of the requirement is to play H.264 videos on the mobile from the Assets folder (local file system). We have run in to a show stopper while trying to implement this feature, here are the details -
    1. We are using OSMF that comes bundled with Flex Builder 4.6
    2. Using Adobe AIR 3.1 and Flex SDK 4.6
    When video of quality H.264 MPEG4 1280*720 30FPS with input bit rate 2000 is being played on the mobile device (android), the video frame rate is choppy however on the desktop it plays out fine... StageVideo is something I would like to try however, at this moment I have no access to Android 3.0 which is required for StageVideo...
    What are we missing? Is AIR 3 not capable to play H.264 videos on android, though the Android native video player plays it out just fine?
    Regards
    Baliga

    Hi,
    Video encoding is very important.
    For example, use baseline profile level 3.1 for H264 for mobile
    (and not High profile level 4.1 recommended for desktop).
    For more information, see the MAX session of Fabio Sonnati:
    "Encoding for Performance on Multiple Devices"
    And if you have an Android phone/tablet, there is my AIR application
    to watch Adobe MAX 2011 videos :
    https://market.android.com/details?id=air.fr.inway.maxVideos2011
    Search "Sonnati" for this session's video.
    (For info, i use a video player based on OSMF 1.6)
    The pdf presentation is available on Sonmati's blog:
    http://sonnati.wordpress.com/
    Philippe

  • Problem in full screen mode air application

    Hi All
    I am facing some problem in creating an air application. I used fullscreenmode .FULL_SCREEN_INTERACTIVE to maximize the window on load the application was succeeded in some extent. But there is one problem one bottom bar is coming just under the window. can anybody please help me. I am attaching the preview with this.
    Thanks and regards

    Hi M*A*S*H 4077 thanks agan for your reply sending you the total code i used in my project.As I am a new coder my codes are not in abc please try to understand.please have a look and if u want to see my componentcode then also i can send code.component i only used in the video part.
    thank you
    <?xml version="1.0" encoding="utf-8"?>
    <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
        xmlns:components="components.*"
        verticalAlign="top"
        backgroundColor="white"
        borderStyle="none"
        borderThickness="0"
        creationComplete="init();"
        baseline="0"
        paddingLeft="0" paddingRight="0" paddingTop="0" paddingBottom="0"      
        initialize="service.send()"               
        applicationComplete="fullscreenmode()"
        backgroundGradientAlphas="[1.0, 1.0]"
        backgroundGradientColors="[#CCCCCC, #090909]"
        backgroundImage="@Embed(source='assets/background/background.jpg')"
        >
        <mx:Script>
            <![CDATA[
                import mx.controls.Alert;
                import flash.display.Sprite;
                import flash.display.StageAlign;
                import flash.display.StageScaleMode;
                import mx.rpc.events.ResultEvent;
                import mx.effects.Iris;
                import mx.effects.easing.*;
                import flash.utils.Timer;
                [Bindable]
                public var secondsTillDue:int=100;
                import mx.collections.ArrayCollection;
                import mx.rpc.events.ResultEvent;
                public var bol:Boolean;
                [Bindable]
                private var images:ArrayCollection;
                [Bindable]
                private var centerpoint:Number;
                [Bindable]
                private var currentIndex : Number = 0;
                public var myTimer:Timer;
                [Bindable]
                private var mainwidth:Number;
                [Bindable]
                private var mainheight:Number;
       private function init():void {
                myTimer=new Timer(1000);
                myTimer.addEventListener(TimerEvent.TIMER,warnIfClose);
                myTimer.start();
                // Initialize the uldr variable which will be used to load the external
                // playlist XML file.
                uldr = new URLLoader();
                uldr.addEventListener(Event.COMPLETE, xmlCompleteHandler);
                uldr.load(new URLRequest(PLAYLIST_XML_URL));
            /* function setFullScreenDisplayState():void{
                 stage.displayState=stageDisplayState.FULL_SCREEN_INTERACTIVE;
          public function warnIfClose(event:TimerEvent):void{
            secondsTillDue=secondsTillDue-1;
            if(secondsTillDue==90){   
             lab1.setStyle("hideEffect", fade);
             lab1.visible=false;
             clockpan.visible=false;
             clockpan.includeInLayout=false        
             clock1.setStyle("hideEffect", fade);
             clock1.visible=false;        
            else if(secondsTillDue==88){
                mainbox
                imagePart.setStyle("showEffect",fade);
                imagePart.visible=true;
                imagePart.includeInLayout=false;
             else if(secondsTillDue==83){
                 imagePart.visible=false;            
                 imagePart.setStyle("hideEffect",fade)        
                 videoContainer.visible=true;
                 playVideo();    
                private function fullscreenmode():void{
                stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
                mainwidth=stage.width;
                mainheight=stage.height;
                centerpoint=stage.height/2;
                private function serviceHandler(event:ResultEvent):void{           
                    images = event.result.gallery.img;
                    var timer:Timer = new Timer(15000);
                    timer.addEventListener(TimerEvent.TIMER,nextImage);
                    timer.start();
                private function nextImage(event:TimerEvent):void{
                        if (currentIndex < images.length - 1){
                            currentIndex++;
                        else {
                            currentIndex = 0;
            import mx.controls.ProgressBarMode;
                 * The amount of time between calls to update the playhead timer, in
                 * milliseconds.
                private const PLAYHEAD_UPDATE_INTERVAL_MS:uint = 10;
                 * The path to the XML file containing the video playlist.
                private const PLAYLIST_XML_URL:String = "playlist.xml";
                 * The client object to use for the NetStream object.
                private var client:Object;
                 * The index of the currently playing video.
                [Bindable]
                private var idx:uint = 0;
                 * A copy of the current video's metadata object.
                private var meta:Object;
                private var nc:NetConnection;
                private var ns:NetStream;
                private var playlist:XML;
                private var t:Timer;
                private var uldr:URLLoader;
                private var vid:Video;
                private var videosXML:XMLList;
                 * The SoundTransform object used to set the volume for the NetStream.
                private var volumeTransform:SoundTransform;
                 * Constructor
                private function initApp():void {
                    // Initialize the uldr variable which will be used to load the external
                    // playlist XML file.
                    uldr = new URLLoader();
                    uldr.addEventListener(Event.COMPLETE, xmlCompleteHandler);
                    uldr.load(new URLRequest(PLAYLIST_XML_URL));
                 * Once the XML file has loaded, parse the file contents into an XML object,
                 * and create an XMList for the video nodes in the XML.
                private function xmlCompleteHandler(event:Event):void {
                    playlist = XML(event.target.data);
                    videosXML = playlist.video;
                    main();
                 * The main application.
                private function main():void {
                    volumeTransform = new SoundTransform();
                    // Create the client object for the NetStream, and set up a callback
                    // handler for the onMetaData event.
                    client = new Object();
                    client.onMetaData = metadataHandler;
                    nc = new NetConnection();
                    nc.connect(null);
                    // Initialize the NetSteam object, add a listener for the netStatus
                    // event, and set the client for the NetStream.
                    ns = new NetStream(nc);
                    ns.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
                    ns.client = client;
                    // Initialize the Video object, attach the NetStram, and add the Video
                    // object to the display list.
                    vid = new Video();
                    vid.x = 0;
                    vid.y = 0;
                    vid.attachNetStream(ns);
                    videoContainer.addChild(vid);
                    // Begin playback of the first video.
                    //playVideo();
                     //play video code goes here
                    // Initialize the Timer object and set the delay to
                    // PLAYHEAD_UPDATE_INTERVAL_MS milliseconds.
                    t = new Timer(PLAYHEAD_UPDATE_INTERVAL_MS);
                    t.addEventListener(TimerEvent.TIMER, timerHandler);
                    // Configure the positionBar ProgressBar instance and set the mode to
                    // MANUAL. Progress  bar values will be explicitly set using the
                    // setProgress() method.
                    //positionBar.mode = ProgressBarMode.MANUAL;
                    // Configure the volumeSlider Slider component instance. The maximum
                    // value is set to 1 because the volume in the SoundTransform object
                    // is set to a number between 0 and 1. The snapInterval and tickInterval
                    // properties are set to 0.1 which allows users to set the volume to
                    // 0, 0.1 - 0.9, 1.0 which allows users to increment or decrement the
                    // volume by 10%.
                    //volumeSlider.value = volumeTransform.volume;
                    //volumeSlider.minimum = 0;
                    //volumeSlider.maximum = 1;
                    //volumeSlider.snapInterval = 0.1;
                    //volumeSlider.tickInterval = volumeSlider.snapInterval;
                    // Setting the liveDragging property to true causes the Slider
                    // instance's change event to be dispatched whenever the slider is
                    // moved, rather than when the user releases the slider thumb.
                    //volumeSlider.liveDragging = true;
                    //volumeSlider.addEventListener(Event.CHANGE, volumeChangeHandler);
                    // Configure the various Button instances. Each Button instance uses
                    // the same click handler.
                    //playButton.addEventListener(MouseEvent.CLICK, buttonClickHandler);
                    //pauseButton.addEventListener(MouseEvent.CLICK, buttonClickHandler);
                    //stopButton.addEventListener(MouseEvent.CLICK, buttonClickHandler);
                    //backButton.addEventListener(MouseEvent.CLICK, buttonClickHandler);
                    //forwardButton.addEventListener(MouseEvent.CLICK, buttonClickHandler);
                 * Event listener for the volumeSlider instance. Called when the user
                 * changes the value of the volume slider.
                private function volumeChangeHandler():void {
                    // Set the volumeTransform's volume property to the current value of the
                    // Slider and set the NetStream object's soundTransform property.
                    //volumeTransform.volume = volumeSlider.value;
                    ns.soundTransform = volumeTransform;
                 * Event listener for the ns object. Called when the net stream's status
                 * changes.
                private function netStatusHandler(event:NetStatusEvent):void {
                    try {
                        switch (event.info.code) {
                            case "NetStream.Play.Start" :
                                // If the current code is Start, start the timer object.
                                t.start();
                                break;
                            case "NetStream.Play.StreamNotFound" :
                            case "NetStream.Play.Stop" :
                                // If the current code is Stop or StreamNotFound, stop
                                // the timer object and play the next video in the playlist.
                                t.stop();
                                playNextVideo();
                                break;
                    } catch (error:TypeError) {
                        // Ignore any errors.
                 * Event listener for the ns object's client property. This method is called
                 * when the net stream object receives metadata information for a video.
                private function metadataHandler(metadataObj:Object):void {
                    // Store the metadata information in the meta object.
                    meta = metadataObj;
                    // Resize the Video instance on the display list with the video's width
                    // and height from the metadata object.
                    vid.width = mainwidth;
                    vid.height = mainheight;
                    // Reposition and resize the positionBar progress bar based on the
                    // current video's dimensions.
                    //positionBar.move(vid.x, vid.y + vid.height);
                    //positionBar.width = vid.width;
                 * Retrieve the current video from the playlist XML object.
                private function getVideo():String {
                    return videosXML[idx].@url;
                 * Play the currently selected video.
                private function playVideo():void {
                    var url:String = getVideo();
                    ns.play(url);
                 * Decrease the current video index and begin playback of the video.
                private function playPreviousVideo():void {
                    if (idx > 0) {
                        idx--;
                        playVideo();
                        // Make sure the positionBar progress bar is visible.
                        //positionBar.visible = true;
                 * Increase the current video index and begin playback of the video.
                 [Bindable]
                 private var newTime:Number;
                private function playNextVideo():void{
                    if (idx < (videosXML.length() - 1)) {
                        // If this is not the last video in the playlist increase the
                        // video index and play the next video.
                        idx++;
                        playVideo();
                        // Make sure the positionBar progress bar is visible.
                        //positionBar.visible = true;
                    } else {
                        // If this is the last video in the playlist increase the video
                        // index, clear the contents of the Video object and hide the
                        // positionBar progress bar. The video index is increased so that
                        // when the video ends, clicking the backButton will play the
                        // correct video.
                        idx++;
                        vid.clear();
                        init();
                        //Alert.show("video end")
                        //positionBar.visible = false;
                private function timerHandler(event:TimerEvent):void {
                    try {
                    } catch (error:Error) {
            ]]>
        </mx:Script>
    <mx:XML id="imagesXML" source="data/images.xml" />
        <mx:Zoom id="zoom" />
        <mx:Fade id="fadein" duration="1000" alphaFrom="100" alphaTo="0" />
        <mx:Fade id="fade" />
        <mx:Rotate id="rotate"
                angleFrom="-180"
                angleTo="0"
                easingFunction="Elastic.easeInOut"
                duration="2000" />
    <mx:VBox  id="mainbox" horizontalAlign="left" width="100%" height="100%" verticalScrollPolicy="off" horizontalScrollPolicy="off">
                <mx:Panel borderStyle="none"
               borderAlpha="0"
               cornerRadius= "0"
               headerHeight= "0"
               backgroundAlpha= "0"
               borderThickness="0"
               verticalAlign="middle"
               top="100"
               height="500"
               paddingLeft="0"
               paddingRight="0"
               paddingBottom="0"
               verticalScrollPolicy="off"
               horizontalScrollPolicy="off"
               horizontalAlign="center"          
               width="{mainwidth-100}"           
               id="clockpan"
               >       
                    <mx:Label text="Current Time : " fontFamily="arial" fontWeight="bold" fontSize="15" id="lab1" color="#FFFFFF"/>
                    <components:MyWatch formatString="DD/MM/YYYY KK:NN:SS " themeColor="#0D424C" id="clock1"/>
                </mx:Panel> 
        <!--image part start-->     
        <mx:Panel horizontalAlign="left" id="imagePart" visible="false" includeInLayout="false" borderStyle="none"
               borderAlpha="0"
               cornerRadius= "0"
               headerHeight= "0"
               borderThickness="0"
               verticalScrollPolicy="off"
               paddingLeft="0" paddingBottom="0" paddingRight="0" paddingTop="0"
               horizontalScrollPolicy="off"
               backgroundAlpha= "0" width="100%" height="100%">       
                <mx:Image source="assets/images/{images.getItemAt(currentIndex).file}"
                    showBusyCursor="true" id="imagefile" width="{mainwidth}" maxHeight="{mainheight}" minHeight="{mainheight}" maxWidth="{mainwidth}" minWidth="{mainwidth}" height="{mainheight}" hideEffect="{fadein}"  x="0" y="0" maintainAspectRatio="false"/>
                <mx:Text text="{images.getItemAt(currentIndex).title}" styleName="title" color="#ffffff" x="0" y="30"/>
         </mx:Panel>
        <!--image part end-->
        <!--image part start-->      
        <mx:Panel borderStyle="none"
               borderAlpha="0"
               cornerRadius= "0"
               borderThickness="0"
               headerHeight= "0" top="0" left="0"
               backgroundAlpha= "0" verticalAlign="middle"
               verticalScrollPolicy="off"
               horizontalScrollPolicy="off"
               x="0"
               >
             <mx:VideoDisplay borderStyle="none" borderThickness="0" visible="false" id="videoContainer"
                  maintainAspectRatio="false"           
                  />
        </mx:Panel>
        <!--image part end-->
         <!--<mx:Button label="fullscreen" click="stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;"/>-->
         </mx:VBox>   
        <mx:HTTPService id="service" url="data.xml" result="serviceHandler(event)"/>
    </mx:WindowedApplication>

  • Adobe AIR application crash on start in iOS devices

    I have Adobe AIR application that uses Starling and DragonBones.
    We use IntelliJ IDE.
    We can run the application on the device without problem when running from the IDE.
    We build an ad-hoc distribution and put it on a device using TestFlight.
    When we run the application it show the splash-screen image and after that either go into white blank screen or crashes.
    In the XCode Organizer crash report I can't find helpful information.
    How can I debug this problem?

    Any chance of Testing with Flash Professional ? If so than connect your device and in Flash Professional CC go to Debug->Debug Movie-> On Device Via Usb -> Select your device.
    It will start a debug session as soon as you start your app/game and than you can debug whats going wrong on the device, setup your trace statements or breakpoints and see in output panel what actually the problem is.
    I hope it will help or some community guru may assist you or particularly you can post your problem in starling forum too, may be someone will help you there ...
    PS: In debug session mode performance will be low so don't worry about that. This mode is just for debugging and testing purposes.
    Thanks,
    Muhammad Faisal Zaheer,
    Sr. Software Engineer, Team Lead, Cubix Labs

  • Need better alternative to Adobe AIR Application Installer

    In order to build a double-clickable desktop application,
    apparently one has to use the Adobe AIR Application Installer. This
    is bad for a few reasons:
    It's not scriptable.
    It hard-wires the name of the swf file to load into the
    generated binary.
    For Mac OS X, the "swf launcher" should be a simple "launcher
    stub". The name of the swf file to load should be read from the
    Info.plist file. If it did this, then the stub could be the same
    for all applications. For Windows, there could be a simple XML
    config file in the same directory as the app that serves the same
    purpose as Info.plist on the Mac.
    I hope Adobe addresses this soon.

    quote:
    Originally posted by:
    mattkane
    How about creating your native launcher app with the whole
    AIR client in the Resources folder. When you launch your app it
    launches your server executable, then after its done its stuff it
    launches the AIR app.
    You could make the launcher app itself headless so you don't
    get two dock icons.
    This doesn't address the need to have a non-GUI alternative to
    the Air Application Installer so builds can be completely
    automated.
    It definitely breaks the drag-and-drop of a file onto the
    application's icon.
    I never said I have 2 Dock icons. (I already solved that
    problem by making the server "faceless" by setting LSUIElement to 1
    in the server's Info.plist.)
    Why do I want completely automated builds? Aside from the
    ease of just being able to type "ant" and press Return, any real
    development group has things such that a "build machine"
    automatically rebuilds the app (on all platforms) after ever
    developer check-in to check for accidental build breakage. Those
    builds also become available to QA for them to test.
    Ever time some new development tool comes out where the
    authors provide a GUI tool (presumably because they think GUI =
    easy), I have to wonder, "What were they thinking?" If the authors
    are themselves developers, how can they not see how crippling not
    providing an all-command-line tool-chain is? Don't all non-trivial
    development groups do automated builds as described above? The only
    answer I can think of is that some
    PHB
    somewhere thought it would be a "neat idea" to have an
    "easy-to-use" GUI application (because that sells to other PHBs).
    As to drag-and-drop: presumably, the swf launcher that gets
    generated properly handles drag-and-drop of files onto the
    application's icon and Does The Right Thing when it happens (where
    "right thing" usually means simply opening the document dropped
    onto the icon). Now, since my launcher gets launched instead, that
    breaks drag-and-drop unless I implement that functionality myself.
    The way I've implemented my launcher is such that, after the
    fork(), it's the parent process that exec's itself into the client
    thus keeping the original process ID. The hope is that Launch
    Services on the Mac, when handling and drag-and-drop event, will
    send said event to the original process -- which is now the client
    -- and everything Just Works. I have yet to get around to testing
    this (I'm busy with other things at the moment); but, if it turns
    out that my hope isn't fulfilled, well then I can fall back to
    keeping my launcher running to get and forward the OpenDoc
    AppleEvents from my launcher to the swf launcher.
    So, anyway, back to my original plea: Adobe,
    please just give us a command-line replacement for the Air
    Application Installer (preferably just a launcher stub that reads
    Info.plist). Thanks.

  • Installing a LARGE AIR application

    Hello,
    I am attempting to create an installer for Windows that installs the AIR runtime, our application, and all the content required such that any user can log in and use the application. Our application is an educational tool for autistic children, and will be installed in lab environments in schools.
    Our AIR application by itself is not large - about 5MB. However, it relies upon about 600MB of external assets. These include various forms of media: images, audio clips, SWFs etc. If I try to bundle all of this into a single AIR file using FlashBuilder 4, FlashBuilder dies due to lack of memory to the JVM. I have tried to increase memory to the JVM, but even given the maximum it still does not work. I then attempted to package and sign the AIR file using the command line tools. That appears to work, however that operation results in a bloated AIR file that is over 1GB in size, almost double the size of the content packaged into it. If I attempt to use the sidecar installer provided by Adobe to install this AIR file the installer dies. Further investigation shows that others have hit this same size limitation with AIR files, but there is no resolution in site to this problem.
    Since it seemed impossible to package the entire application into a single AIR file my next attempt was to keep the content separate from the AIR application. I have experimented with Installshield, but have found no way to chain together the sidecar installer MSI with another MSI that installs the content to the same location. I could install the AIR application, and then let the application itself finish the installation by copying the content to app-storage://, but then the application is only usable by the user who installed it. In a lab environment in a school this doesn't work, because typically the person who is installing the application is an administrator, not the end user. app-storage:// resides under a user's directory, not in a shared location. The application is unable to copy files to the app:// location due to the security model of AIR.
    I know that I can do a silent install from the command line using the sidecar installer, but I haven't found a way to chain this together with another MSI that installs the content. It could be that I am too limited by what Installshield Express offers. I am now attempting to use NSIS.
    Any advice anyone may have on how to do this is very appreciated. Surely others have needed to install large media rich AIR applications on Windows. AIR is a great platform for us in many respects, but I must be able to create an easy seamless install process for end users. Our product will be going into use over the next 6 months by over 1000 users, and that number will grow quickly. I would be willing to pay for a support incident from Adobe if that is warranted.
    Thanks
    Kevin MacDonald

    After much gnashing of teeth I I came up with what appears to be a workable solution. I am posting my solution here for the benefit of others. I was able to use NSIS to create an installer that first installs my AIR application via Adobe silent install feature (http://help.adobe.com/en_US/AIR/1.5/air_runtime_redist/air_runtime_redist.pdf), and then proceeds to install the content in the same folder. The end result is an application that should work for all users and is a reasonably seamless installation experience . The only downside is that you wind up with a total of 3 new items in the Programs & Features control panel: one for Adobe AIR, one for the NSIS installer, and one for the AIR application. The uninstaller only removes the NSIS installer, but that zaps all the content off the disk so it's not terrible. Another little gotcha is that the install folder in this script needs to match the folder in the descriptor file of the AIR application, because everything needs to wind up in the same folder.
    This also assumes you have permission from Adobe to redistribute the AIR runtime.
    My NSIS script is below.
    ; Script generated by the HM NIS Edit Script Wizard.
    ; HM NIS Edit Wizard helper defines
    !define PRODUCT_NAME "My Product Install Kit"
    !define PRODUCT_VERSION "2.0"
    !define PRODUCT_PUBLISHER "mycompany"
    !define PRODUCT_WEB_SITE "http://www.mycompany.com"
    !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\Adobe AIR Application Installer.exe"
    !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
    !define PRODUCT_UNINST_ROOT_KEY "HKLM"
    ; MUI 1.67 compatible ------
    !include "MUI.nsh"
    ; MUI Settings
    !define MUI_ABORTWARNING
    !define MUI_ICON "..\..\..\..\..\__staging\InstallerResources\TT.ico"
    !define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
    ; Welcome page
    ; License page
    !insertmacro MUI_PAGE_LICENSE "..\..\..\..\..\__staging\InstallerResources\License.txt"
    ; Directory page
    !insertmacro MUI_PAGE_DIRECTORY
    ; Instfiles page
    !insertmacro MUI_PAGE_INSTFILES
    ; Finish page
    ; NOTE: This provides an option to run the AIR application. This depends upon the Client.air file creating this executable. It doesn't get created by this installer.
    ;       Also, The directory 'My Product 2.0' shown anywhere in this script must match the installation directory created by Client.air or nothing will be in the right spot.
    !define MUI_FINISHPAGE_RUN "$INSTDIR\My Product 2.0\My Product 2.0.exe"
    !insertmacro MUI_PAGE_FINISH
    ; Uninstaller pages
    !insertmacro MUI_UNPAGE_INSTFILES
    ; Language files
    !insertmacro MUI_LANGUAGE "English"
    ; MUI end ------
    Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
    OutFile "Setup.exe"
    InstallDir "$PROGRAMFILES\mycompany"
    InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
    ShowInstDetails show
    ShowUnInstDetails show
    var removePreviousInstall
    Section "MainSection" SEC01
      StrCpy $removePreviousInstall "A previously installed version of My Product 2.0 has been detected at $INSTDIR\My Product 2.0 that must be un-installed before proceeding. Please go to Control Panel --> Programs and Features and fully un-install any mycompany components. Also, make sure that this folder is deleted. Then, you may attempt to re-install. The installer will quit now."
      SetOutPath "$APPDATA\mycompanyAIRInstaller"
      SetOverwrite try
      File /r "..\..\..\..\..\__staging\mycompanyAIRInstaller\*.*"
      ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Adobe AIR" "DisplayVersion"
      IfErrors installAIRRuntime
      Goto installAIRFile
      installAIRRuntime:
      MessageBox MB_OK "NOTE: The Adobe AIR Runtime will now be installed. Please accept the AIR license agreement in the following dialog and allow the installation to complete."
      ExecWait '"$APPDATA\mycompanyAIRInstaller\AdobeAIRInstaller.exe"' $0
      ${If} $0 != '0'
        MessageBox MB_OK|MB_ICONSTOP 'Adobe AIR Installer returned error code ("$0"). Adobe AIR must be installed for this installation to complete.'
        Quit
      ${EndIf}
      installAIRFile:
      ;Check for existence of a previous installation
      IfFileExists "$INSTDIR\My Product 2.0" ExistingInstallDetected NoExistingInstallDetected
      ExistingInstallDetected:
         MessageBox MB_OK $removePreviousInstall
         Quit
      NoExistingInstallDetected:
    ;  MessageBox MB_OK "Installing Adobe AIR Runtime and Application via silent installation"
      ExecWait '"$APPDATA\mycompanyAIRInstaller\Adobe AIR\Versions\1.0\Adobe AIR Application Installer.exe" -silent -eulaAccepted -location "$INSTDIR" -desktopShortcut -programMenu "$APPDATA\mycompanyAIRInstaller\Client.air"' $0
      ${Switch} $0
      ${Case} '0'
        ${Break}
      ${Case} '1'
        MessageBox MB_OK 'A restart is required to complete this installation'
        ${Break}
      ${Case} '3'
        MessageBox MB_OK 'The Adobe AIR runtime was not found. Please try fulling un-installing any intalled components and attempt to re-install.'
        ${Break}
      ${Case} '4'
        MessageBox MB_OK 'Failed to load the Adobe AIR runtime. Please try fulling un-installing any intalled components and attempt to re-install.'
        ${Break}
      ${Case} '7'
      ${Case} '9'
        MessageBox MB_OK $removePreviousInstall
        Quit
        ${Break}
      ${Default}
        MessageBox MB_OK 'Unknown error ("$0") installing the Adobe AIR runtime. Please try fully un-installing any installed components and attempt to re-install.'
        ${Break}
      ${EndSwitch}
      SetOutPath "$INSTDIR\My Product 2.0\assets\abagale"
      File /r "..\..\..\..\..\__staging\Client_abagale\*.*"
    SectionEnd
    Section -AdditionalIcons
      SetOutPath $INSTDIR
    ;  WriteIniStr "$INSTDIR\${PRODUCT_NAME}.url" "InternetShortcut" "URL" "${PRODUCT_WEB_SITE}"
      CreateShortCut "$SMPROGRAMS\mycompany\Uninstall My Product 2.0.lnk" "$INSTDIR\Uninstall My Product 2.0.exe"
    SectionEnd
    Section -Post
      WriteUninstaller "$INSTDIR\Uninstall My Product 2.0.exe"
      WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$APPDATA\Adobe AIR\Versions\1.0\Adobe AIR Application Installer.exe"
      WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
      WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
      WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$APPDATA\Adobe AIR\Versions\1.0\Adobe AIR Application Installer.exe"
      WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
      WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
      WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
    SectionEnd
    Function un.onUninstSuccess
      HideWindow
      MessageBox MB_ICONINFORMATION|MB_OK "My Product 2.0 Install Kit was successfully removed from your computer."
    FunctionEnd
    Function un.onInit
      MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Are you sure you want to completely remove My Product 2.0?" IDYES +2
      Abort
    FunctionEnd
    Section Uninstall
      RMDir /r "$INSTDIR\My Product 2.0\*.*"
      RMDir /r "$APPDATA\mycompanyAIRInstaller\*.*"
      ;Deletes the link put there by the AIR app installer.
      Delete "$SMPROGRAMS\mycompany\My Product 2.0.lnk"
      DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
      DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
      SetAutoClose true
    SectionEnd

  • Commenting functionality not available when I open a pdf in air application

    commenting functionality not available when I open a pdf in
    air application. Adobe documentation says that is expected with
    adobe air 1.0 but I still have the same problem even if I use the
    latest air runtime

    Back up all data.
    In the Finder, select Go ▹ Go to Folder from the menu bar, or press the key combination shift-command-G. Copy the line of text below into the box that opens, and press return:
    /Library/Internet Plug-ins
    From the folder that opens, remove any items that have the letters “PDF” in the name. You may be prompted for your login password. Then quit and relaunch Safari, and test.
    I've seen an unconfirmed report that the "Silverlight" web plugin distributed by Microsoft can also interfere with PDF display in Safari, so you might need to remove it as well, if applicable.
    If you still have the issue, repeat with this line:
    ~/Library/Internet Plug-ins
    If you don’t like the results of this procedure, restore the items from the backup you made before you started. Relaunch Safari again.

  • Font Anti-Aliasing Issues in HTML/Ajax based Air Applications

    It seems that the font-renderer in HTML/Ajax based Air Applications is using some kind of sub-pixel font renderer that is overriding and vastly inferior to the standard Windows ClearType, or any Apple based option as well.  This problem is particularly noticable with light text on a dark background, and made worse the smaller the text is.  I've put together an example image explaining exactly what I mean at: http://regator.com/fontRendering.png   (it's a large image 1126 x 1500 px)
    My example shows two fonts at four different sizes rendered in an HTML Air App vs the default Windows Cleartype, as well as using Safari to show the Font style anti-aliasing.  In all cases the HTML Air App rendering is far more difficult to read, and in many cases severely distorts the color of the text in a way that other subpixel algorithms do not.  As far as I can find after literally hours of googling and searching there's no way to override this in HTML based applications.  Is there any solution to this, or a planned fix for the renderer?  Other than this rendering issue, the HTML interface for creating Air apps is absolutely brilliant, this is just making my finished product look significantly less polished than it otherwise would if the text were more readable.
    Thanks.

    Dear caturner81, dear Adobe,
    is there a solution to this problem? I'd really love to fix the aliasing thing in Air/HTML!

  • Protect a desktop air application

    HI
    I currently use Zinc to wrap my swf and then add softlocker copy protection to that
    it all works ok.
    I would prefer to use an air application but need to know if is there is a way
    to prevent users just copying it onto other computers.
    cheers
    KBN

    The method I use will allow you encrpyt most of your source code using a key that is unique to every computer.
    The initial download of my software is a simple air app that does not contain the actual program. It is more like a shell that first retreaves a list of the clients mac addresses and the user entered activation code that is created at time of purchase. This is sent to server and logged.  The activation code is saved to a file client side.  At the server the mac address and activation key are used to create the encryption key.  The bulk of the program code is then encrypted using that key, then divided into parts and sent back to the client.
    The client puts the parts back together and saves the encrypted file.
    At runtime the shell finds the mac address list and the activation key, then using same method as server gets the encryption key and decrypts the program file. Run simple check to make sure it loaded. For encyption i found an aes method that works in php and javascript.
    Next I use this code to load the program
    var loader = air.HTMLLoader.createRootWindow(true, options, true, windowBounds);
    loader.cacheResponse=false;
    loader.placeLoadStringContentInApplicationSandbox=true;
    loader.loadString(page);
    This method makes it very difficult to copy to another computer although since I wrote it i know there are some weeknesses in the security but to make it harder i obv. the shell code. It at least keeps most from pirating.
    However there are issues with this that I have found.
    First i was using networkInfo to get the list of mac address but this failed in a test windows XP computer.  When the wireless was off it did not return the MAC.  I was not able to recreate this in VISTA or 7.  Not sure if it could happen.  Was not tested on a mac computer.  To fix this (at least for windows).  I wrote a simple bat file that gets the MAC list, then converted it to an exe which is included.  This does force you to create native installers.  call the exe with this
    var nativeProcessStartupInfo = new air.NativeProcessStartupInfo();
    var file = air.File.applicationDirectory.resolvePath("findmac.exe");
    nativeProcessStartupInfo.executable = file;
    process = new air.NativeProcess();
    process.start(nativeProcessStartupInfo);
    process.addEventListener(air.ProgressEvent.STANDARD_OUTPUT_DATA, onOutputData);
    process.addEventListener(air.ProgressEvent.STANDARD_ERROR_DATA, onErrorData);
    process.addEventListener(air.NativeProcessExitEvent.EXIT, onExit);
    process.addEventListener(air.IOErrorEvent.STANDARD_OUTPUT_IO_ERROR, onIOError);
    process.addEventListener(air.IOErrorEvent.STANDARD_ERROR_IO_ERROR, onIOError);
    put the list  together in the onOutputData event using array.push
    and continue on the onExit event
    using the findmac.exe will return the same info every time (that i know of)
    beware thought that using the native install will break the standard application update process so you will have to write your own.  my updates are processed the same way as above.
    This is contents of the .bat file to get the mac list
    @Echo off
    SETLOCAL
    SET MAC=
    SET Media=Connected
    FOR /F "Tokens=1-2 Delims=:" %%a in ('ipconfig /all^| FIND "Physical Address"') do @echo %%b
    ENDLOCAL
    using this method makes it simple to implement at try before you by method.  at runtime if no activation code get try me version from server instead of full version.

Maybe you are looking for

  • Bdc for info records

    Hi all , i have developed a bdc progoram for inforecords..               while uploading the data if there are two conditions or more for same vendor and material i am getting the correct one but netprice for first condition comes correctly . if the

  • Difference Between (MINUS and NOT IN ) conditions

    Hi all, I am using oracle 10gR2 on AIX. I am running a sql query and getting some strange results from this. Select dw_cell_id from cell_sites cs where cs.valid_flg = 'Y' and cs.dw_cell_id not in (select distinct dm.dw_cell_id from cell_sites_dim dm)

  • Certain websites crash when I open them

    I am so frustrated.   I kept going to certain websites( Goodreads for example) and safari closes the minute they open.  I took my iPad to the Mac store and they said there was a software issue and replaced it for free since it was still under warrant

  • Logic for this math problem

    Before I get stinker replies for cross posting , let me tell that , i have been recommended to post this in this forum. My problem is such: I need to find a logic to implement the following : In the floating point number , say , 1.0.. the Integral pa

  • Help recover a deleted page

    hello i need to know how to recover a page from my note pad on my ipad i deleted by accident  any help would be nice ty solox