Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 as3,使用参数实例化阶段上的对象_Actionscript 3_Flash Cs6 - Fatal编程技术网

Actionscript 3 as3,使用参数实例化阶段上的对象

Actionscript 3 as3,使用参数实例化阶段上的对象,actionscript-3,flash-cs6,Actionscript 3,Flash Cs6,如果我有一个扩展MovieClip的对象,比如说它是某种定制的文本字段类(InputField) InputField构造函数有2个参数(占位符文本:String=null,displayAsPassword:Boolean=false) 如果我将电影剪辑拖到舞台上,它将被构建,但不会设置参数。有没有办法在施工时设置它们 为了清楚起见,我希望能够将此电影剪辑拖到舞台上,而不是创建它并从后面的代码中执行addChild()。您可以初始化符号本身内部的变量,它们将在符号放置到舞台上后立即设置。您仍然

如果我有一个扩展MovieClip的对象,比如说它是某种定制的文本字段类(InputField)

InputField构造函数有2个参数(占位符文本:String=null,displayAsPassword:Boolean=false)

如果我将电影剪辑拖到舞台上,它将被构建,但不会设置参数。有没有办法在施工时设置它们


为了清楚起见,我希望能够将此电影剪辑拖到舞台上,而不是创建它并从后面的代码中执行addChild()。

您可以初始化符号本身内部的变量,它们将在符号放置到舞台上后立即设置。您仍然可以从.as文件访问这些变量

编辑:要扩展注释,当您在已设置的类中声明两个变量时,只需将它们设置为默认值,例如:

class MyInputField
{
  // Will always set following variables to default values, 
  // whether using addChild or dragging symbol onto stage.
  var placeholderText:String = "Enter text here..";
  var displayAsPassword:Boolean = false;

  // If needed, store text field via constructor
  var tf:TextField;

  // Constructor
  function MyInputField()
  {
  }
}

我不知道这是否是一个好主意,但您可以创建一个类来扩展
输入字段
。您可以在超级函数中更改构造函数参数

 public function CustomInputField() {
   super("hello", true); 
 }
但是,我会选择一个公共函数
init()
,它的参数与您现在在构造函数中使用的参数相同


顺便说一句,你是在重新发明轮子吗?Inputfield被创建了一千次。请看一下,它有非常好的可扩展组件和表单类。

谢谢,请再解释一下。“符号内部”是什么意思?拖到后台的文本字段可以作为对象访问。该文本字段是“符号”。所以,转到它的属性,并设置这些变量。@Vesper:是的,这就是我一直在做的。我想知道我是否能以某种方式设置构造参数。很抱歉花了这么长时间回复,忙碌的一天!如果您有一个符号,您正在用Flash将其从“库”拖到舞台上,那么分配这些变量(占位符文本、displayAsPassword)的最佳方法就是编写一个小类来处理该符号。如果这是你的意思,我可以提供更多的细节,我以前可能还没有完全理解。@Sim:没问题,我自己忙了一天。没关系,我知道你的意思,我想这是我已经做过的。我创建了我的类,并在这里设置了属性,我只是想知道是否有更好的方法来实现它。您对构造(作者时间)和运行时之间的差异感到困惑。标准方式的代码不会在编写期间运行(将项目从库拖到后台)。我建议你仔细阅读如何创建一个组件。更具体地说,看看作者时间组件framework@The_asMan:谢谢,但这不是问题所在。我对AS3很在行,但对flash pro界面不太在行,我只是想知道是否有办法在界面中以某种方式设置构造变量。下面的两个答案是正确的-没有办法做到这一点。+1-谢谢你给我指点temple lib,我的输入字段类很短(60行),但你是对的,也许是重新发明了轮子。