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 此[字符串]可以';不能添加到电影剪辑中_Actionscript 3_String_Addchild - Fatal编程技术网

Actionscript 3 此[字符串]可以';不能添加到电影剪辑中

Actionscript 3 此[字符串]可以';不能添加到电影剪辑中,actionscript-3,string,addchild,Actionscript 3,String,Addchild,假设我有一个叫做“盒子”的电影唇,“字符串”实际上是“盒子”,只是它不是电影唇 我现在面临的问题是我不能使用circle.addChild(这个[String])之类的东西 我尝试跟踪这个[Strin]==框,结果返回true。 当我删除circle.addChild(这个[String])时,它不会将框添加到其中。 但是,当我追踪是否有任何新对象添加到圆中时,数量仍然保持不变 你知道这里的问题是什么吗?如果我理解你的意思,你是在另一个MovieClip调用框中添加一个MovieClip名为(实

假设我有一个叫做“盒子”的电影唇,“字符串”实际上是“盒子”,只是它不是电影唇

我现在面临的问题是我不能使用circle.addChild(这个[String])之类的东西

我尝试跟踪这个[Strin]==框,结果返回true。 当我删除circle.addChild(这个[String])时,它不会将框添加到其中。 但是,当我追踪是否有任何新对象添加到圆中时,数量仍然保持不变


你知道这里的问题是什么吗?

如果我理解你的意思,你是在另一个
MovieClip
调用框中添加一个
MovieClip
名为(实例名为)的字符串,对吗

嗯,您不能为对象指定名称字符串,因为
String
是ActionScript 3.0中的类名
您不能使用任何类名或受保护关键字命名任何对象,例如
if
for
class
Boolean

这些是ActionsScript在全球范围内使用的词(它们是顶级关键字)

另外,请注意,尽管您可以命名对象(给它一个实例名)
MovieClip
Sprite
Loader
Stage
等等,但ActionScript将所有这些名称作为类名,在包内,可以导入到动画/应用程序中,Flash将自动为您导入几乎每一个文件。
如果你用这些词来命名你的对象,你会有一些风险,比如代码不能正常工作或者根本无法编译

正如@Bosworth99和@merv所指出的那样,您还可以注意到ActionScript使用的命名约定,大写字母小写字母

类(按照惯例)是用大写字母(第一个字母大写)编写的,这表示名称是类名。

通常,对象是用小写字母(第一个字母较低,每个新合成的单词都用大写字母)书写的,这表明单词是一个对象名(或另一个关键字,可能已经被保留)。

您的语法有点奇怪-您说您有一个名为“Box”的MC。您是在FlashIDE中创建的,还是通过编程创建的?无论哪种方式-您似乎在引用类,而不是类(对象)的实例。尝试:

和-正如大家普遍同意的做法,类名大写,实例名小写。我也喜欢在private vars前面加下划线

NemoStein是绝对正确的-保留关键字每次都会损坏您的代码


祝你好运

你已经正确地识别了黄的问题,但我认为你应该更准确地区分顶级类(如String)和Flash库类(如MovieClip)。从技术上讲,后者不受限制,只要不包括它们的库。此外,您可能希望指出AS3中用于对象的lowerCamelCase约定。
var _circle:MovieClip;
var _box:Sprite;

private function createDisplayObjects():void
{
_circle = new MovieClip();
this.addChild(_circle);

_box = new Sprite();
_circle.addChild(_box);

}