Note that there are some explanatory texts on larger screens.

plurals
  1. POURLRequest or Loader simply not working on some computers?
    primarykey
    data
    text
    <p>So my problem may be a little bigger than that, but I'm not certain. I'm creating a custom flash photo viewer for a client that dynamically loads the images with Loader objects. It takes a folder name in a specified directory on the server and calls a php page (using URLRequest) to get the workable contents of the folder. And then it loads it up from that array. </p> <p>Here's the problem: it works FINE on my machine and every machine I've tested it on, but it DOESN'T work on my client's machine or some of his customer's machines. The loader bar that's at the bottom of the screen doesn't start to fill, which means that the images aren't starting to even load, and the status bar indicates that it continues to wait for a the server, yet never finishes waiting. This is consistent on a single machine, but varies across machines.</p> <p>I've added diagnostics (a custom class I made to track certain vars and collect errors) to the thing to catch any errors, but it reports nothing on my client's machine. I've added flash version checking code, so the possibility of a lower version messing it up is gone... </p> <p>I guess my question is, is there anything (security, environment, etc) that I could have overlooked that doesn't allow request objects or something to work on certain machines?? I've been ripping my hair out trying to figure this out!</p> <p>My code (relevant sections):</p> <pre><code> public static const LOADLIMIT:int = 4; public var paramObj:Object; private var imageRequests:Vector.&lt;URLRequest&gt;; private var loaderObj:Vector.&lt;Loader&gt;; private var nextToLoad:int = -1; //... public function Player(){ //... paramObj = loaderInfo.parameters; if (!paramObj.root) paramObj.root = "http://site.com/images/"; paramObj.imgloc = paramObj.imgloc; var res = bootstrapImages(paramObj.imgloc); if (res is String){ loadErrorMsg.text = res; loadErrorMsg.visible = true; log.log(res); } //... } private function bootstrapImages(imgloc:String):*{ try{ if (!imgloc) return "No image location specified"; var req:URLRequest = new URLRequest(paramObj.root+"getdirlist.php?name="+imgloc); var loader:URLLoader = new URLLoader(); loader.addEventListener(Event.COMPLETE, directoryLoaded); loader.addEventListener(IOErrorEvent.IO_ERROR, function(ex:IOError){ loadErrorMsg.text = "Error retreiving album data."; loadErrorMsg.visible = true; log.log(ex); }); loader.load(req); } catch (ex:Error){ log.log(ex); throw ex; } } private function directoryLoaded(e:Event){ try{ //directory will come down as a json array trace(e.target.data); try { var items:Array = JSON.decode(e.target.data); } catch (ex:Error){ trace (ex.getStackTrace()); loadErrorMsg.text = "Error parsing album data."; loadErrorMsg.visible = true; log.log(ex); return; } if (items.length == 0){ loadErrorMsg.text = "Invalid album name"; loadErrorMsg.visible = true; log.log("Items length is 0."); return; } imageRequests = new Vector.&lt;URLRequest&gt;(); loaderObj = new Vector.&lt;Loader&gt;(); for each(var item:String in items){ imageRequests.push(new URLRequest(paramObj.root+"coffeeimages/"+paramObj.imgloc+"/"+item)); loaderObj.push(null); } //...show UI... for (var i:int = 0; i &lt; LOADLIMIT; i++){ imageLoaded(null); } } catch (ex:Error){ log.log(ex); throw ex; } } private function imageLoaded(e:Event){ try{ //if this was called as a result of the load event, start the slideshow! :D if (e != null &amp;&amp; e.target != null) { //stage.addChild((e.target as LoaderInfo).loader); trace(loaderObj[0]); if (loaderObj[0] != null &amp;&amp; //if the first image is loaded loaderObj[0].contentLoaderInfo.bytesLoaded &gt;= loaderObj[0].contentLoaderInfo.bytesTotal){ trace(loaderObj[0].contentLoaderInfo.bytesLoaded, loaderObj[0].contentLoaderInfo.bytesTotal); loadErrorMsg.visible = false; playSlideshow(true); } } trace((e)?e.target:null, loaderObj); nextToLoad++; if (nextToLoad &gt;= imageRequests.length) return; var r:URLRequest = imageRequests[nextToLoad]; var l:Loader = new Loader(); l.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded); l.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function(ex:ErrorEvent){ loadErrorMsg.text = "Error parsing image data."; loadErrorMsg.visible = true; log.log(ex); }); l.load(r); loaderObj[nextToLoad] = l; log.addObjectWatch(l); } catch (ex:Error){ log.log(ex); throw ex; } } </code></pre> <p>Also, <a href="http://dreamphoto.us/wedding/coffee/coffeePlayer.php?file=MjAzX1BpY2NvbGlubw==&amp;name=UGljY29saW5v" rel="nofollow noreferrer">here's the player live on the site</a>. Ctrl+Alt+Home brings up my diagnostics panel. Please tell me if it doesn't work for you as well, so I can be more worried about this... :/ Thanks.</p> <p><strong>Edit:</strong> I have added more debugging information. Turns out that on the computers that cannot load it, they are getting an HTTP status 0 returned when trying to bootstrap the album information. I have no idea what that means...</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload