AS3 getDefinitionByName不是函数

时间:2013-04-15 06:35:22

标签: actionscript-3

当我尝试将动态文本字段的文本设置为动画片段中另一个动态文本字段的文本时,我收到了AS3错误。

这是我的代码:

repairMachine.screen.gotoAndStop(5);
repairMachine.screen.brandName.text = repairMachine.screen.getDefinitionByName(whichBrand).text;

第二行是发生错误的地方。

brandName是一个名为Screen(屏幕)的MovieClip中的动态TextField,它位于MovieClip RepairMachine(repairMachine)中。

这是我设置哪个品牌:

whichBrand = "brand" + ((repairMachine.screen.selectionArea.y - 6) / 22);

此代码有效,我正在成功跟踪whichBrand作为正确的实例名称。

我现在的问题是:为什么我会收到错误#1006 getDefinitionByName不是函数。 我该如何解决?

提前致谢!

此致,

米兰。

2 个答案:

答案 0 :(得分:2)

getDefinitionByName()不属于某个类。目前,您尝试将此功能称为repairMachine.screen

的方法

你应该删除它,并将其作为正常函数调用:

getDefinitionByName(whichBrand);

除此之外,您正在尝试访问实例。 getDefinitionByName()用于获取类定义,而不是实例。你在getChildByName()之后。

答案 1 :(得分:1)

您收到该错误是因为getDefinitionByName不是

的方法
repairMachine.screen

getDefinitionByName位于flash utils中。所以你必须使用它:

import flash.utils.*;

getDefinitionByName('my.fully.qualified.class.name');

您提到哪个品牌指向正确实例名称。

方法getDefinitionByName 用于获取实例