AS3,ReferenceError: Error #1056: 无法为 ×× 创建
属性 ×××。
当把显示对象关联到脚本类,而此时又将这个显示对象中的显示对象在属性面板中设置了名称,会出现“ReferenceError: Error #1056: 无法为 ×× 创建属性 ×××。”的错误。网上都说在脚本类中定义一个相同名称和类型的共有属性即可,其实不需要这么麻烦,只需像下面这样做:
在Flash9中,“文件”菜单,“发布设置”,在ActionScript版本选择后面的“设置...”按钮,进入ActionScript3.0设置,将“舞台:自动声明舞台实例”的复选框勾选上,再导出就OK了。
ReferenceError: Error #1056的处理
FLASH 2009-12-02 15:15:09 阅读407 评论1 字号:大中小
在 Flash 9中, 你可以把一个舞台对象关联到一个脚本类 (Actionscript class) . 你可以把一个 MovieClip的扩展对象拖放在舞台上, 然后在属性面板(properties pane), 指定其属性.但是当你试图使用这个新功能的时候,却会得到类似于下面的错误报告:
ReferenceError: Error #1056:
Cannot create property test1_btn on Test.
at flash.display::Sprite/flash.display:Sprite::constructChildren()
at flash.display::Sprite$iinit()
at flash.display::MovieClip$iinit()
at Test$iinit()
事实上,这是因为必须公开地(publicly) 声明任何在你的类中出现的对象 (Buttons, MovieClips, TextFields, etc.) 包括那些在舞台上已经被命名过的对象
比如,你在舞台上绘制了一个叫做“myMc”的对象,那么在对应的类中,就应该把它声明为一个公开变量 (public var) :
package
{
imp
public class Test extends MovieClip
{
public var myMc:MovieClip;
public function Test()
{
}
}
}
==============================================================
下面写一个例子:
第一步:创建一个影片剪辑(chengye_txt),在里面绘制一个动态文本框,并为动态文本框命名(psw),编辑完成后从库中拖一个实例在舞台上。
第二步:创建一个chengye_txt.as文件,在里面输入:
package{
imp
imp
public class chengye_txt extends MovieClip{
public var psw:TextField;
public function chengye_txt(){
psw.text="欢迎来到成业的博客";
}
}
}
并把它与影片剪辑chengye_txt进行关联,测试!将看到文本框中的文字变成了欢迎来到成业的博客,这里实现了在类中用public var psw:TextField;把动态文本框psw关联到了类的内部,并且还可以通过代码修改其值。如果将public var psw:TextField;注释掉将会出现下面的错误:
ReferenceError: Error #1056: 无法为 chengye_txt 创建属性 psw。
at flash.display::Sprite/flash.display:Sprite::constructChildren()
at flash.display::Sprite$iinit()
at flash.display::MovieClip$iinit()
at chengye_txt$iinit()
at flash.display::Sprite/flash.display:Sprite::constructChildren()
at flash.display::Sprite$iinit()
at flash.display::MovieClip$iinit()