0

我不断收到此错误:

TypeError: Error #1006: setSize is not a function.
    at circles::SpiroUI/doSliders()[/Users/wakemana/Documents/Adobe Flash Builder 4/SpiroPaint/src/circles/SpiroUI.as:74]
    at circles::SpiroUI()[/Users/wakemana/Documents/Adobe Flash Builder 4/SpiroPaint/src/circles/SpiroUI.as:42]
    at circles::Spirograph()[/Users/wakemana/Documents/Adobe Flash Builder 4/SpiroPaint/src/circles/Spirograph.as:115]
    at circles_fla::MainTimeline/frame1()[circles_fla.MainTimeline::frame1:2]

我已经包含了导入fl.controls.*fl.events.*并且我还确保 Slider UI 组件包含在文档库中。

UI 一直在以一种奇怪的方式闪烁,似乎正在重绘每一帧中的组件或其他东西。我之前确实有这一切工作,但是自从引入了一些新课程后,它就停止了工作。应用程序中的其余绘图正在工作,只是 UI 组件闪烁并且不工作。

帮助表示赞赏:)

4

2 回答 2

1

似乎您的SpiroUI班级试图调用班级setSize中未提供的方法。

于 2011-04-09T16:38:05.413 回答
1

某处未定义某些内容,因为编译器没有找到函数所在的对象。

您的堆栈
位于 circles::SpiroUI/doSliders() ... /circles/SpiroUI.as:74

因此,如果可能,您可能希望至少使用该行更新问题,以查看 setSize 是如何被调用的。

另一个尝试的选项是在第 74 行设置断点,并在对象遇到错误之前检查对象可用的内容。

我遵循了你对 UI 组件的要求,以确保错误不是来自之前的。

我有一个小的文档类slider

import flash.display.Sprite;
    public class slider extends Sprite
    {
        var sp:SpiroUI;
        public function slider()
        {
            sp = new SpiroUI();
            sp.doSliders();
            sp.x = 100;
            sp.y = 100;
            addChild(sp);

        }
    }

然后我猜测你的 SpiroUI 是如何得到的,

import fl.controls.Slider;

public class SpiroUI extends Slider
{
    public function SpiroUI()
    {
        super();
    }

    public function doSliders():void
    {
        setSize(10,10);
    }   

}

虽然无法确定,但尝试了各种方法来重现错误,但通常我会期望如果有人要调用不在根目录下的 swf 中的函数。

于 2011-04-10T00:31:10.707 回答