Flash UIComponent ......再也没有工作了......

时间:2011-04-09 16:15:32

标签: flash actionscript-3 uicomponents

我一直收到这个错误:

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组件闪烁且无法工作。

帮助赞赏:)

2 个答案:

答案 0 :(得分:1)

您的SpiroUI类似乎试图调用类中未显示的setSize方法。

罗布

答案 1 :(得分:1)

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

你的筹码有了 at 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中调用一个不在根目录的函数,我会期待这个。