I asked the engineer who wrote history
manager:
This is expected behavior.
The history manager saves states upon entry, not exit.
If you've called saveState()
twice, your app is now in the second state. The first press of the Back button
returns to the first saved state. The second press of the Back button returns
the app to its "initial" state and will call loadState() with an
undefined state object.
Matt
From: flexcoders@yahoogroups.com [mailto:flexcoders@yahoogroups.com] On Behalf Of rockmoyosa
Sent: Thursday, July 14, 2005 1:22
AM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Re:
HistoryManger state is undefined on loading
Guess I'm right!!.
But anyway, I'm writing a "buffer"
between the HistoryManager and
Application in which I store my
Model-state(Object).
But but I still got this weird problem with the
first save I make and
if I push the back button the state (yes the
normal procedure with
strings) is undefined.
For example i save twice an object in an array and
than I store the
index in the state Object I want to store.
var state:Object = new Object();
state.currentIndex =this.historyArray.length-1;
When I trace this action the result is:
CurrentIndex: 0
CurrentIndex: 1
Now I push the back button and the loadstate is
executed. When I trace
the incoming state object:
Log.debug("state: "+state);
Log.dump(state);
first back :
DEBUG: state: [object Object]
<< DUMP START >>
this:Object
|
currentIndex = 0 (string)
Second back:
DEBUG: state: undefined
<< DUMP START >>
this = undefined (undefined)
On the third back:
it's a new request or nothing. This is the
expected result.
It's link it's out of sync or something.Twice the
saveState is
executed and twice the loadState is executed. What
is wrong with it.
Please anybody....
--- In flexcoders@yahoogroups.com,
"rockmoyosa" <[EMAIL PROTECTED]> wrote:
> I'm beginning to get the idee that this part
of Flex is pushed in 1.5
> (Or what version it was introduced). No
documentation is minimal so
> are the supported functionality.
>
> I hope somebody can prove me wrong.....
>
> be continued??
>
>
> --- In flexcoders@yahoogroups.com,
"rockmoyosa" <[EMAIL PROTECTED]> wrote:
> > --- In flexcoders@yahoogroups.com,
"rockmoyosa" <[EMAIL PROTECTED]>
wrote:
> > > This "thing" is really
weird:
> > >
> > > first save state:
> > >
> > > DEBUG: ----- saveState ----
> > >
> > > << DUMP START >>
> > > this:Object
> > >
| view = false (boolean)
> > >
| detailId =
7bd21a76-b716-4501-a196-1acf4265d847 (string)
> > >
> > >
> > > And if I click on "Back":
> > >
> > > DEBUG: ----- loadState ----
> > >
> > > << DUMP START >>
> > > this:Object
> > >
| detailId =
7bd21a76-b716-4501-a196-1acf4265d847 (string)
> > >
| view = true (string)
> > >
> > > What the @[EMAIL PROTECTED] view = true???
mmmm... More documentation on the
> > > HistoryManager would be
appreciated. Are perhaps more samples.
> > >
> > > I found one but it to damn
"simple" it doesn't say anything on how
> > > it's working only how to use it for
simple things.
> > >
> > >
> >
>
http://www.richinternet.de/blog/index.cfm?mode=entry&entry=3CF01C8E-CFBB-A5CA-36BCC797581D2CFB
> > >
> > >
> > >
> > > --- In flexcoders@yahoogroups.com,
"jacksodj" <[EMAIL PROTECTED]> wrote:
> > > > I personnaly have seen really
flakey behavior from that history
> > > > controller. I have posted
before, but have not been able to see a
> > > > good resolution
> > > > --- In flexcoders@yahoogroups.com,
"rockmoyosa" <[EMAIL PROTECTED]>
> > > > wrote:
> > > > > My case:
> > > > >
> > > > > - saveState is executed
> > > > > - On "Back"
loadState is executed.
> > > > >
> > > > > But.....
> > > > > Than my state is
"undefined"
> > > > >
> > > > >
> > > > > private var
changed:Boolean;
> > > > >
> > > > >
public function initHistory():Void {
> > > > >
mx.managers.HistoryManager.register(this);
> > > > >
storeInternalState();
> > > > >
}
> > > > >
> > > > >
public function saveState():Object {
> > > > >
// called by
HistoryManager, tells the component
> > > > >
// to create a
"state" object and to return it\
> > > > >
var state = new
Object();
> > > > >
state.model =
Model.getInstance();
> > > > >
state.view =
this._scope.m_detailview;
> > > > >
> > > > >
mx.controls.Alert.show
> > > >
(""+this._scope.m_detailview.visible);
> > > > >
Log.debug("hello"+state);
> > > > >
return state;
> > > > >
}
> > > > >
> > > > >
public function loadState(state:Object):Void {
> > > > >
// called by
HistoryManager, passes in a state
> > > > >
// object so the
component can rebuild it's state
> > > > >
mx.controls.Alert.show("state: "+state.view);
> > > > >
restoreInternalState(state);
> > > > >
}
> > > > >
> > > > >
public function savePresent():Void {
> > > > >
storeInternalState(
);
> > > > >
}
> > > > >
> > > > >
public function storeInternalState():Void {
> > > > >
mx.managers.HistoryManager.save();
> > > > >
}
> > > > >
> > > > >
public function restoreInternalState(state:Object):Void
{
> > > > >
Log.dump(state);
> > > > >
Log.debug
> > > >
("@@@@state.view.visible@@@@: "+state.view.visible);
> > > > >
> > > > >
if(state.view.visible == true &&
> > > > this._scope.m_detailview.visible
==
> > > > > false ||
> > > > >
state.view.visible == false
> > > > &&
> > > > >
this._scope.m_detailview.visible == true){
> > > > >
toggleView();
> > > > >
}
> > > > >
Model.getInstance().restoreInstance(state.model);
> > > > >
}
--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com
---- LSpots keywords ?>---- HM ADS ?>
--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com
---- LSpots keywords ?>
---- HM ADS ?>
YAHOO! GROUPS LINKS