我试图摆脱在主时间线上使用代码,但我很难理解 .as 文件和 .fla 文件如何交互。例如,我试图弄清楚如何将变量从主时间线传递到公共函数,对该变量执行一些操作并将其传递回主时间线。我在框架上有一个输入文本框和一个带有侦听器的简单按钮。我希望能够在文本框中输入 00000 00,并返回 0.00。下面是我的代码:
import flash.events.MouseEvent;
import convertToDecimal;
var inputText:String;
var outputText:String;
submit_btn.addEventListener(MouseEvent.CLICK, submit);
function submit(e:MouseEvent):void
{
inputText = input_txt.text;
new convertToDecimal(inputText);
trace();
}
这是公共函数:
package
{
import flash.sampler.StackFrame;
import flash.events.MouseEvent;
import fl.controls.Button;
public class convertToDecimal
{
public function convertToDecimal(stringParmter:String)
{
var rex:RegExp = /[\s\r\n]+/gim;
stringParmter = stringParmter.replace(/^\s+|\s+$/g, '');
stringParmter = stringParmter.replace(rex,'.');
stringParmter = stringParmter.replace(/^0+(?!\.|$)/, '');
if ((stringParmter == "-----.--") || (stringParmter == "0"))
{
stringParmter = " 00";
}
}
}
}
这可能是一个非常菜鸟的问题,但我们将不胜感激。
如果您有类,为了使用它,您必须构造它的“副本”并将其分配给变量。构建你的类非常简单:
new convertToDecimal(inputText); // does the constructing job
但接下来会发生什么呢?当你的程序进入下一行时,你构造的类就会被释放!您必须将其分配给变量,以便将其保留在内存中:
var yourVariableName:convertToDecimal = new convertToDecimal(inputText);
现在你已经有了课程的“副本”。 OOP 范式很好,因为您可以非常轻松地创建大量“副本”,然后每个“副本”都会有自己的生活。
现在回到你的问题。众所周知,将代码添加到时间线是不好的。相反,将您的类附加到您的项目并以这种方式更改它:
package
{
import flash.sampler.StackFrame;
import flash.events.MouseEvent;
import fl.controls.Button;
public class Main
{
public function Main()
{
submit_btn.addEventListener(MouseEvent.CLICK, submit);
}
private function submit(e:MouseEvent):void
{
var inputText:String = input_txt.text;
inputText = convertToDecimal(inputText);
trace(inputText);
}
private function convertToDecimal(stringParmter:String):String
{
var rex:RegExp = /[\s\r\n]+/gim;
stringParmter = stringParmter.replace(/^\s+|\s+$/g, '');
stringParmter = stringParmter.replace(rex, '.');
stringParmter = stringParmter.replace(/^0+(?!\.|$)/, '');
if ((stringParmter == "-----.--") || (stringParmter == "0"))
{
stringParmter = " 00";
}
return stringParmter;
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)