Flash 跟踪函数@#$%#$@%中的额外字符
有人能告诉我这些额外的角色是从哪里来的吗 这是输出: “MECHEL OAO ADS”Flash 跟踪函数@#$%#$@%中的额外字符,flash,actionscript-3,Flash,Actionscript 3,有人能告诉我这些额外的角色是从哪里来的吗 这是输出: “MECHEL OAO ADS”21.1921.7021.88“+0.84%”4736975 一, “MECHEL OAO ADS”21.1921.7021.88“+0.84%”4736975 一, “MECHEL OAO ADS”21.1921.7021.88“+0.84%”4736975 一, 注意空格,然后是1?那些不应该在那里 这是脚本,应该是即插即用的 var quoteTimer:Timer = new Timer(1000);
21.19
21.70
21.88
“+0.84%”
4736975 一, “MECHEL OAO ADS”
21.19
21.70
21.88
“+0.84%”
4736975 一, “MECHEL OAO ADS”
21.19
21.70
21.88
“+0.84%”
4736975 一, 注意空格,然后是1?那些不应该在那里 这是脚本,应该是即插即用的
var quoteTimer:Timer = new Timer(1000);
quoteTimer.addEventListener(TimerEvent.TIMER, getQuote);
quoteTimer.start();
var url:String = "http://www.hupcapstudios.com/projects/getDow.php";
var stockInfo:String = "s=MTL&f=nol1hp2v";
function getQuote(e:Event):void
{
var variables:URLVariables = new URLVariables();
variables.info = stockInfo;
var urlRequest:URLRequest = new URLRequest(url);
var stockLoader:URLLoader = new URLLoader();
urlRequest.method = URLRequestMethod.POST;
urlRequest.data = variables;
stockLoader.load(urlRequest);
stockLoader.addEventListener(Event.COMPLETE, addStock);
}
function addStock(e:Event):void
{
var stockArray:Array = e.target.data.split(",");
var assocArray:Array = new Array("Stock: " , "Open: ", "Current: ", "High :", "Percent Change: ", "Volume: ");
for(var i:int=0;i<assocArray.length;i++)
{
trace(stockArray[i]);
}
}
为了使它可用,我必须把它分解成一个带有几个循环的数组
新的addStock()函数(将结果发送到包含数据文本字段的电影剪辑)
函数addStock(e:事件):无效
{
var array:array=e.target.data.split(“\n”);//将字符串拆分为由“\n”分隔的数组
array.pop();//消除最后一个数组条目,该条目仅为空白
var goodArray:Array=new Array();//我将存储格式正确的值的数组
对于(var i:int=0;i我不知道为什么会有这些字符,但我可以提供一个如何找到的建议。:)
在调试器中运行Actionscript代码,并在addStock()处理程序中设置断点。在运行时,检查stockArray[]的最后元素的内容。我敢打赌它是:“4736975\n1\n”
为什么会这样?可能是PHP脚本添加了换行符和1。如果您查看结果页面的源代码,而不是在浏览器中查看,您将看到所有换行符的真实情况。请记住,浏览器会折叠所有空格,除非明确要求不要这样做。我想我已经得到了它…我会给能肯定回答这个问题的ASCII天才
我假设返回的数据中有“\n”(在返回的数据中不可见)
我之所以这样做是因为我在返回字符串中搜索了它,然后返回了一个子字符串减去“\n”后面的字符串数据
-J添加trace(e.target.data);
在addStock
方法的开头,查看php发送的数据
虽然yahoo.finance.com链接提供了正确的csv文件,但将URLLoader
()使用的url粘贴到浏览器上给了我很大的帮助
缺少符号列表。
一,
我想这可能会给你敲响警钟。什么是跟踪(e.target.data);
在addStock方法中跟踪?“Microsoft Corpora”,不适用,不适用,不适用,不适用,26.71,“0.00%”,0,“MSFT”“GEN ELECTRIC CO”,不适用,不适用,不适用,16.79,“0.00%”,0,“GE”“日经225”,10276.410216.1410290.3110257.56,“+0.18%”,0“^N225”“福特汽车公司”,不适用,不适用,不适用,不适用,不适用,不适用,0.00%”,0“ET”,N/A,N/A,N/A,0.00,“N/A”,N/A,“ET”1oops…废话,那条评论没有格式…我将把它添加到问题中。这意味着flash确实收到了一个后跟“1”的换行符。所以问题出在其他地方。这是正确的答案。不是php提供了“\N”“这是yahoo返回的.csv。我不知道…试试这个URI,看看你得到了什么…^N225+F+ET&F=noghl1p2vsok,我将url添加到了问题帖子中,就在跟踪结果的上方。(你必须复制并粘贴链接,因为链接在^character处被截断。)“s=MTL&F=nol1hp2v”实际上是从$\u post['info'追加的。”否则,我发送的是php getDow.php?info=s=MTL&f=nol1hp2v,它不起作用……我通过post发送的原因是,我可以直接从我的flash应用程序更改值。
<?php
$stock = require("http://download.finance.yahoo.com/d/quotes.csv?". $_POST['info']);
echo $stock;
?>
"Microsoft Corpora",N/A,N/A,N/A,26.71,"0.00%",0,"MSFT"
"GEN ELECTRIC CO",N/A,N/A,N/A,16.79,"0.00%",0,"GE"
"NIKKEI 225",10276.4,10216.14,10290.31,10257.56,"+0.18%",0,"^N225"
"FORD MOTOR CO",N/A,N/A,N/A,7.66,"0.00%",0,"F"
"ET",N/A,N/A,N/A,0.00,"N/A",N/A,"ET"
1
function addStock(e:Event):void
{
var array:Array = e.target.data.split("\n"); // splits the string into arrays delimited by the "\n"
array.pop(); // eliminates the last array entry which is just white space
var goodArray:Array = new Array(); // the array I will store the correctly formatted values
for(var i:int=0;i<array.length;i++)
{
var s:String = array[i].substr(0,array[i].indexOf("\n")-1);
var nArray:Array = s.split(",");
for(var con:int = 0; con<nArray.length;con++)
{
goodArray.push(nArray[con]);
}
}
var round:int = 0; // the number I need to offset the stocks information.
for(var t:int = 0; t<stockCardsArray.length;t++)
{
var c:* = stockCardsArray[t]; // the array containing my movie clips with the text fields.
c.stock_name.text = goodArray[0+round].substr(1,goodArray[0+round].length-2);
c.open.text = "OPEN: " + goodArray[1+round];
c.low.text = "LOW: " + goodArray[2+round];
c.high.text = "HIGH: " +goodArray[3+round];
c.current.text = "CURRENT: " + goodArray[4+round];
c.percent.text = "PERCENT CHANGE: " + goodArray[5+round];
c.volume.text = "VOLUME: " + goodArray[6+round];
c.symbolTab.symbol.text = goodArray[7+round].substr(1,goodArray[0+round].length);
round +=8;
}
}
var s:String = (e.target.data);
trace(s.substr(0,s.indexOf("\n")-1));