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>
> > >
> >
>


Reply via email to