Flash UIComponent ... не работает ... снова - PullRequest
0 голосов
/ 09 апреля 2011

Я получаю эту ошибку:

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 включен в библиотеку документов.

Пользовательский интерфейс продолжает мигать странным образом, кажется, перерисовывает компоненты в каждом кадре или что-то. Раньше у меня все это работало, но с тех пор, как я представил несколько новых классов, он перестал работать. Остальная часть рисунка в приложении работает, только компоненты пользовательского интерфейса мерцают и не работают.

Помощь приветствуется:)

Ответы [ 2 ]

1 голос
/ 10 апреля 2011

Где-то что-то не определено, так как компилятор не находит объект, в котором находится функция.

В вашем стеке
в кругах :: SpiroUI / doSliders () ... /круги / SpiroUI.as: 74

Так что, если возможно, вы можете обновить вопрос, по крайней мере, с этой строкой, чтобы увидеть, как вызывается setSize.

Другой вариант, чтобы попробоватьэто установить точку останова в строке 74 и проверить, что доступно для объекта, прежде чем он достигнет этой ошибки.

Я следовал тому, что вы сделали для компонентов пользовательского интерфейса, чтобы убедиться, что ошибка произошла не раньше.

У меня есть небольшой класс документов 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, который не находится в корне.

1 голос
/ 09 апреля 2011

кажется, что ваш SpiroUI класс пытается вызвать метод setSize, который не представлен в классе.

Rob

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...