我正在尝试添加一些文本框,以便人们可以选择文本并将其复制到剪贴板。
我写了以下内容,但问题是文本框在访问后仍保留在所有帧中,我只想让它保留在该帧中。我是否必须在其他地方看不见它们?为什么其他框架甚至可以访问此代码?
任何解决方案?谢谢!
stop();
var myFont = new fontCandy();
var myFormat:TextFormat = new TextFormat();
myFormat.size = 10;
myFormat.font = myFont.fontName;
myFormat.color = 0xFFFFFF;
var myText:TextField = new TextField();
myText.defaultTextFormat = myFormat;
myText.embedFonts = true;
myText.antiAliasType = AntiAliasType.ADVANCED;
myText.text = "my@email.com";
addChild(myText);
myText.border = true;
myText.wordWrap = true;
myText.width = 100;
myText.height = 15;
myText.x = 70;
myText.y = 185;
答案 0 :(得分:0)
在FlashPro中,代码中完成的任何操作都不受时间轴关键帧的限制。在代码中完成的任务将持续存在,直到它的范围(它所在的时间轴)被卸载或者您已经通过代码明确地清除它。 (尽管某些东西可以将你的物体保存在记忆中)。
这还包括源自时间轴的显示对象(不是通过代码),而是通过代码操作其父母或定位(所以如果在时间轴对象上使用addChild / setChildIndex)
您必须使用removeChild(instanceOrVarName);
因此,在您的情况下:removeChild(myText);
将删除该文本字段。
所以,总结一下:
必须通过代码清理通过代码完成的事情。
以下是一些供您探索的选项:
removeChild(myText)
ENTER_FRAME
事件并检查播放头是否已移动,如果是,请执行removeChild(myText)
并删除侦听器。myText
,然后保留除{{1}之外的代码}行和new TextField()
行。这应该使它做你想做的事情,但也让它在下一帧被删除。