我是AS3的新手。学习AS3时,我从Adobe示例中获取以下代码并尝试运行它会出现类似
的错误 "1037: Packages cannot be nested."
这是什么意思?
请告诉我如何执行?或者此代码中的任何问题?
package {
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldType;
public class TextField_alwaysShowSelection extends Sprite {
public function TextField_alwaysShowSelection() {
var label1:TextField = createTextField(0, 20, 200, 20);
label1.text = "This text is selected.";
label1.setSelection(0, 9);
label1.alwaysShowSelection = true;
var label2:TextField = createTextField(0, 50, 200, 20);
label2.text = "Drag to select some of this text.";
}
private function createTextField(x:Number, y:Number, width:Number, height:Number):TextField {
var result:TextField = new TextField();
result.x = x; result.y = y;
result.width = width; result.height = height;
addChild(result);
return result;
}
}
}
答案 0 :(得分:3)
您需要创建一个动作脚本文件,然后将该类添加到fla文件属性中的文档类,然后它不会给您一个错误
答案 1 :(得分:2)
您的代码应该编译,前提是它位于根源文件夹(flex builder中的“src”)中。你确定这是整个文件吗?
错误意味着您已将package {}语句嵌套在另一个package {}语句中。
答案 2 :(得分:1)
如果您想在时间轴中包含AS3,请使用:
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldType;
function TextField_alwaysShowSelection() {
var label1:TextField = createTextField(0, 20, 200, 20);
label1.text = "This text is selected.";
label1.setSelection(0, 9);
label1.alwaysShowSelection = true;
var label2:TextField = createTextField(0, 50, 200, 20);
label2.text = "Drag to select some of this text.";
}
function createTextField(x:Number, y:Number, width:Number, height:Number):TextField {
var result:TextField = new TextField();
result.x = x; result.y = y;
result.width = width; result.height = height;
addChild(result);
return result;
}
答案 3 :(得分:0)
你是如何运行这个文件的?这不是一个完整的文件。如果您正在使用flex,则需要支持的MXML代码。但是,错误表明您正在使用src文件夹。如果你给出完整的程序,那将是件好事。
答案 4 :(得分:0)
如果您使用Flash,请将该代码放在名为“TextField_alwaysShowSelection.as”的文件中,将其放在FLA旁边,并将该类名设置为FLA“属性”面板中的DocumentClass ...所以其中它说“Class:”写“TextField_alwaysShowSelection”。