我希望我的应用程序能够读取在线保存的设置(例如,在这种情况下,deviantart sta.sh - http://sta.sh/024wsd5s7k0z
)。显然,我使用的是源代码,问题是找到[startSettingsBlock]
和[endSettingsBlock]
之间包含的子字符串。 (<br />
是为了确保我选择正确的文本。)
我感兴趣的部分,第207行:
[number]=42<br />[character]=k<br />[amount]=6<br />[gay]=false<br />[ponies]=cool<br />[whazz]=idiot<br />[thisapp]=is gonna be awesome<br />[rainbow dash]=best pony<br />[lol]=sucks<br />[alice]=hasacat<br />[preferences]=3;6;8<br />[variable]=alice has a cat<br />[slowly]=getting there<br />[poop]=face
到目前为止我的代码:
//bunch of imports here
valueButton.addEventListener(MouseEvent.CLICK, requestValue);
var pageLoader:URLLoader = new URLLoader();
var pageRequest:URLRequest = new URLRequest();
pageRequest.url = "http://sta.sh/024wsd5s7k0z";
pageRequest.method = URLRequestMethod.GET;
var pageContext:LoaderContext = new LoaderContext();
pageContext.checkPolicyFile = true;
pageLoader.addEventListener(Event.COMPLETE, readParams);
pageLoader.load(pageRequest);
var opening:String = "[startSettingsBlock]<br />";
var closing:String = "<br />[endSettingsBlock]";
var rawSettings:String;
function requestValue(e:Event){
var toFind:String = "["+inputTextField.text+"]=";
var variableStartIndex:int = rawSettings.indexOf(toFind)+toFind.length;
var variableEndIndex:int = variableStartIndex;
//once I have raw settings (in any form), I do magics.
valueTextField.text = rawSettings.substring(variableStartIndex, variableEndIndex);
}
function readParams(e:Event){
rawSettings = pageLoader.data.substring(
pageLoader.data.indexOf(opening)+opening.length,
pageLoader.data.indexOf(closing));
}
运行readParams后,rawSettings
等于
<!DOCTYPE html>
<!--[if I
这是源代码的开头。
答案 0 :(得分:0)
我还没有尝试过您的代码,但看起来它对我来说很好,有什么问题?
无论如何,我的建议是使用不同的东西在线存储您的设置,网络服务器允许您保存数据而不需要页面的所有html,或者在最糟糕的情况下您无法访问服务器可以使用GitHub gist https://gist.github.com/因为你可以访问一个要点,例如:
https://gist.github.com/fhferreira/cc8fcefce8421dd2d6c4
原始格式:
你的要点中有一个原始按钮。这样分析起来更简单。
最后一个建议是使用标准格式(我认为JSON是最受欢迎的),您可以使用现有的库来解析它。对于json,所有必需的代码都已存在于标准库http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/JSON.html
中