String AS3如何从页面源代码的中间获取子字符串?

String AS3如何从页面源代码的中间获取子字符串?,string,actionscript-3,String,Actionscript 3,我希望我的应用程序能够读取在线保存的设置(如本例中的deviantart sta.sh-http://sta.sh/024wsd5s7k0z)。显然,我开始使用is源代码,问题是找到[startSettingsBlock]和[endSettingsBlock]之间包含的子字符串。(用于确保我选择了正确的文本。) 我感兴趣的部分,第207行: [number]=42<br />[character]=k<br />[amount]=6<br />[gay]=fa

我希望我的应用程序能够读取在线保存的设置(如本例中的deviantart sta.sh-
http://sta.sh/024wsd5s7k0z
)。显然,我开始使用is源代码,问题是找到
[startSettingsBlock]
[endSettingsBlock]
之间包含的子字符串。(

用于确保我选择了正确的文本。)

我感兴趣的部分,第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
[number]=42
[character]=k
[amount]=6
[gay]=false
[ponies]=cool
[whazz]=biot
[thisapp]=一定会很棒的
[rainbow dash]=最好的小马
[lol]=糟透了
[alice]=hasacat
[preferences]=3;6.8
[变量]=爱丽丝有一只猫
[慢慢地]=到达那里
[便便]=脸
到目前为止,我的代码是:

//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));
}
//此处有大量导入
valueButton.addEventListener(MouseEvent.CLICK,requestValue);
var pageLoader:URLLoader=新的URLLoader();
var pageRequest:URLRequest=新的URLRequest();
pageRequest.url=”http://sta.sh/024wsd5s7k0z";
pageRequest.method=URLRequestMethod.GET;
var pageContext:LoaderContext=新的LoaderContext();
pageContext.checkPolicyFile=true;
pageLoader.addEventListener(Event.COMPLETE,readParams);
pageLoader.load(pageRequest);
变量打开:字符串=“[startSettingsBlock]
”; 变量关闭:String=“
[endSettingsBlock]”; var-rawSettings:字符串; 函数请求值(e:事件){ var-toFind:String=“[”+inputTextField.text+“]=”; var variableStartIndex:int=rawSettings.indexOf(toFind)+toFind.length; var variableEndIndex:int=variableStartIndex; //一旦我有了原始设置(以任何形式),我就会做魔术。 valueTextField.text=rawSettings.substring(variableStartIndex,variableEndIndex); } 函数readParams(e:事件){ rawSettings=pageLoader.data.substring( pageLoader.data.indexOf(opening)+opening.length, pageLoader.data.indexOf(关闭)); }
运行readParams后,
rawSettings
等于



我还没有试过你的代码,但我觉得它运行得很好,有什么问题吗

无论如何,我的建议是使用不同的东西在线存储您的设置,Web服务器允许您保存数据,而无需页面的所有html,或者在最坏的情况下,您无法访问服务器,您可以使用GitHub gist,因为您可以访问gist,例如:

原始格式:

你的要点中有一个未加工的按钮。这是一种更简单的分析方法


最后一个建议是使用标准格式(我认为JSON是最流行的格式),以便您可以使用现有库来解析它。对于json,所有必需的代码都已经存在于标准库中了

我有两个问题:GitHub是否没有过期日期?它是可编辑的吗?不过,我会尝试学习JSON,看起来更实用。我不认为JSON有过期日期,当然你可以在需要的时候编辑要点。看一看JSON对于人类来说是非常简单和清晰的,而且非常流行。现在应该可以了,因为它将用于我的个人使用,但稍后,如果人们想使用它,我必须找到解决方案。:)客户>简单代码。感谢您的帮助(是的,就我的口味而言,它应该也可以正常工作)有很多服务为应用程序提供后端支持,它们主要用于移动应用程序,但我认为您可以将它们与您的AS3应用程序一起使用。试试看,或者你只需要自己写一个带有登录名和表单的后端。另一个解决方案可能是谷歌文档。但问题是,在编辑链接后,链接会发生变化,我想直接将链接保存在应用程序中,而不是每次更改内容时都进行更新。