Quite possibly not. While I'm a reasonably experienced web programmer, I'm completely new to Flex, so if there's a better or more standard way of doing what I'm trying to do, I'm all for it.
What I actually need is to take a dynamically generated list of filenames (populated via RemoteObject), and load an external swf file for each one into a view stack. I'm using Cairngorm 2.2, so - as I understand it - manipulating the view (ViewStack) directly in my Command class is a no-no. I'm just supposed to update the model and let the data-bindings update the view. The Repeater was the simplest way I could think of to do that, but I'm not married to the construct in the least. Is there a better way to do it? --- In [email protected], "Gordon Smith" <[EMAIL PROTECTED]> wrote: > > Do you really need to use Repeater? > > - Gordon > > ________________________________ > > From: [email protected] [mailto:[EMAIL PROTECTED] On > Behalf Of ibid049 > Sent: Thursday, June 14, 2007 1:30 PM > To: [email protected] > Subject: [flexcoders] Re: Help Request : Deferred Instantiation and > Bound SWFLoader > > > > Yes, these are still not showing up long after the time it would take > to get them from the server. I understand the asynchronous bit. > Also, running the swf in debug mode shows that downloadedBytes == > totalBytes, so I'm sure it's done loading. Plus, like I said, > setting creationPolicy="queued" makes them show up (but not > creationPolicy="all"). I'm pretty sure it's some kind of timing > issue, like something to do with calling > createComponentsFromDescriptors() before the databinding classes have > updated the underlying dataprovider. > > But I might be talking out of my butt. There's a lot of "magic" > going on here under the hood that I don't understand. > > --- In [email protected] <mailto:flexcoders% 40yahoogroups.com> > , "Alex Harui" <aharui@> wrote: > > > > Yes, of course, but I'm not sure what's going on with repeater > bindings > > and async loading. > > > > > > > > ________________________________ > > > > From: [email protected] <mailto:flexcoders% 40yahoogroups.com> > > [mailto:[email protected] <mailto:flexcoders% 40yahoogroups.com> > ] On > > Behalf Of Gordon Smith > > Sent: Thursday, June 14, 2007 12:54 PM > > To: [email protected] <mailto:flexcoders% 40yahoogroups.com> > > Subject: RE: [flexcoders] Re: Help Request : Deferred Instantiation > and > > Bound SWFLoader > > > > > > > > I tested locally. But shouldn't his SWFs eventually appear? > > > > > > > > - Gordon > > > > > > > > ________________________________ > > > > From: [email protected] <mailto:flexcoders% 40yahoogroups.com> > > [mailto:[email protected] <mailto:flexcoders% 40yahoogroups.com> > ] On > > Behalf Of Alex Harui > > Sent: Thursday, June 14, 2007 10:57 AM > > To: [email protected] <mailto:flexcoders% 40yahoogroups.com> > > Subject: RE: [flexcoders] Re: Help Request : Deferred Instantiation > and > > Bound SWFLoader > > > > Remember that SWFLoading is asynchronous in server environments. > Not > > sure Gordon tested locally or remotely. In an asynch environment, > the > > swf will not complete loading and have its stuff available until > much > > later, after a COMPLETE event (not creationComplete). > > > > ________________________________ > > > > From: [email protected] <mailto:flexcoders% 40yahoogroups.com> > > [mailto:[email protected] <mailto:flexcoders% 40yahoogroups.com> > ] On > > Behalf Of ibid049 > > Sent: Thursday, June 14, 2007 9:07 AM > > To: [email protected] <mailto:flexcoders% 40yahoogroups.com> > > Subject: [flexcoders] Re: Help Request : Deferred Instantiation and > > Bound SWFLoader > > > > By the way, I can "fix" the problem by setting > > creationPolicy="queued" on the TabNavigator, or by setting it > > to "none" and then manually calling createComponentsFromDescriptors > > after the array is populated. But that band-aid short-circuits > > deffered instantiation, which I don't want to do. > > > > Also interesting is that creationPolicy="all" does not fix the > > problem. This is why I was thinking it had something to do with the > > timing of defferred instantiation vs. the bindings or something. It > > almost acts like createComponentsFromDescriptors() is getting > called > > before the array is populated in the init() method, and then future > > calls to createComponentsFromDescriptors() don't fire or something. > > > > --- In [email protected] > <mailto:flexcoders%40yahoogroups.com> <mailto:flexcoders% > 40yahoogroups.com> > > , "Gordon Smith" <gosmith@> wrote: > > > > > > Your code worked for me. I pasted it into a new FlexBuilder > > project, and > > > I made three different SWFs -- screen1.swf, screen2.swf, and > > screen3.swf > > > -- and put them in the same project folder. When I ran the app I > saw > > > each SWF as I clicked the tabs. Perhaps all three of your SWFs are > > > copies of the same SWF? > > > > > > BTW, your 10-line init() method can be condensed into > > > screens = new ArrayCollection( > > > [ { incSWF: "screen1.swf" }, { incSWF: "screen2.swf" }, { > > incSWF: > > > "screen3.swf" } ]); > > > > > > - Gordon > > > > > > ________________________________ > > > > > > From: [email protected] > <mailto:flexcoders%40yahoogroups.com> <mailto:flexcoders% > 40yahoogroups.com> > > > > [mailto:[email protected] > <mailto:flexcoders%40yahoogroups.com> <mailto:flexcoders% > 40yahoogroups.com> > > ] On > > > Behalf Of ibid049 > > > Sent: Wednesday, June 13, 2007 12:36 PM > > > To: [email protected] <mailto:flexcoders% 40yahoogroups.com> > <mailto:flexcoders% > 40yahoogroups.com> > > > Subject: [flexcoders] Help Request : Deferred Instantiation and > > Bound > > > SWFLoader > > > > > > > > > > > > Please forgive the intrusion of contacting you directly, but I > saw > > > you post several times on a related topic in the flexcoders > mailing > > > list, and - after not receiving a response to my own query on the > > > list, thought you might be able to save me hours of wall-to- head- > > > banging with just a few seconds worth of advice. > > > > > > It seems that a viewStack component that contains a SWFLoader is > > not > > > successfully loading the SWF of the second and further panes. > > > Frankly, I can't believe that's the case, because surely someone > > else > > > would have noticed this. I assume it's an elementary error on my > > > part. > > > > > > The following mxml demonstrates the problem. I'm binding the > > > repeater to an ArrayCollection of filenames that should be used > as > > a > > > source for SWFLoaders inside the Repeater. This only loads the > > first > > > pane, even when clicking on the second or third pane. > > > > > > I must be doing this in either a wrong or non-standard way. Is > > there > > > any way you could point to an easier way to accomplish what I'm > > > trying to do here? > > > > > > <?xml version="1.0" encoding="utf-8"?> > > > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml > <http://www.adobe.com/2006/mxml> > > <http://www.adobe.com/2006/mxml <http://www.adobe.com/2006/mxml> > > > > <http://www.adobe.com/2006/mxml <http://www.adobe.com/2006/mxml> > <http://www.adobe.com/2006/mxml <http://www.adobe.com/2006/mxml> > > > " > > > layout="absolute" creationComplete="init()"> > > > <mx:Script> > > > <![CDATA[ > > > import mx.controls.Alert; > > > import mx.collections.ArrayCollection; > > > > > > [Bindable] public var screens:ArrayCollection; > > > > > > public function init():void { > > > screens = new ArrayCollection(); > > > var firstScreen:Object = new Object(); > > > var secondScreen:Object = new Object > > > (); > > > var thirdScreen:Object = new Object(); > > > firstScreen.incSWF = 'screen1.swf'; > > > secondScreen.incSWF = 'screen2.swf'; > > > thirdScreen.incSWF = 'screen3.swf'; > > > screens.addItem(firstScreen); > > > screens.addItem(secondScreen); > > > screens.addItem(thirdScreen); > > > } > > > > > > ]]> > > > </mx:Script> > > > <mx:TabNavigator id="ScreenStack" top="22" left="0" > > > right="0" bottom="0"> > > > <mx:Repeater id="AppRepeater" > > > dataProvider="{screens}"> > > > <mx:Canvas id="AppCanvas" > > > width="100%" height="100%"> > > > <mx:SWFLoader > > > id="ScreenLoader" source="{AppRepeater.currentItem.incSWF}" > > > width="100%" height="100%"/> > > > </mx:Canvas> > > > </mx:Repeater> > > > </mx:TabNavigator> > > > </mx:Application> > > > > > >

