我創建了一個簡單的用戶名頁面,在第1 幀中,有一個按鈕和輸入文本
像下面的代碼
stop();
var SOlastFrame: SharedObject = SharedObject.getLocal("save_frame2");
var shared_data: String
next.addEventListener(MouseEvent.CLICK, gotomyNextFrame);
function gotomyNextFrame(e: MouseEvent): void {
shared_data = inputName.text
nextFrame()
SOlastFrame.data.lastframe = currentFrame;
SOlastFrame.flush();
}
if (SOlastFrame.data.lastframe != null) {
gotoAndStop(SOlastFrame.data.lastframe);
}
我通過添加此代碼保存了最后一幀
SOlastFrame.data.lastframe = currentFrame;
SOlastFrame.flush();
這樣我就可以跳到我打開的最后一幀,我添加了這段代碼
if (SOlastFrame.data.lastframe != null) {
gotoAndStop(SOlastFrame.data.lastframe);
}
在第 2 幀,我用這樣的代碼放置了動態文本
var SOnameUser: SharedObject = SharedObject.getLocal("saveName");
SOnameUser.data.yourName = shared_data;
SOnameUser.flush();
trace(SOnameUser.data.yourName);
userName.text = "Hello " shared_data;
if (shared_data != null) {
userName.text = shared_data;
SOnameUser.data.yourName = shared_data;
}
我認為它有效,動態文本已成功保存。如果我重新打開它,它會因為執行結果 SOlastFrame.data.lastframe 而直接進入第 2 幀。
問題是我之前保存的用戶名變為空。
執行 SOlastFrame.data.lastframe 時,如何在 shareobject 上加載動態文本。
或者
flash重新打開時如何加載sharedObject
uj5u.com熱心網友回復:
之所以會這樣,是因為當您第 2 次開始時,您會直接進入shared_data為空的第 2 幀。我認為你應該重新組織......好吧,一切。
// Frame 1: Splash (you don't have it).
// First of all, use a single SO rather than two.
var SO:SharedObject = SharedObject.getLocal("my.save");
// Check if there are saved fields.
if (SO.data.userName && SO.data.lastFrame)
{
// If there are saved credentials, the user
// won't even see the Login Frame.
gotoAndStop(SO.data.lastFrame);
}
else
{
// If there are no saved credentials — proceed to the Login Frame.
nextFrame();
}
然后,這是你的第一幀。
// Frame 2: Login.
stop();
// You don't actually need to SO.flush() every time,
// it's a (feeble) measure against sudden crashes.
SO.data.lastFrame = currentFrame;
// Your code, for the most part, but simpler.
next.addEventListener(MouseEvent.CLICK, gotoNext);
function gotoNext(e:MouseEvent):void
{
// You don't need any additional variables
// to temporarily store the user name.
SO.data.userName = inputName.text;
nextFrame();
}
那么,我們開始吧。
// Frame 3: only logged (via Login Frame or via SO data)
// users reach this point.
stop();
// In case we moved from the Login Frame.
SO.data.lastFrame = currentFrame;
// The only thing left to do.
userName.text = "Hello " SO.data.userName;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/417758.html
標籤:
