Как передать аргументы экземплярам сцены в ActionScript 3? - PullRequest
0 голосов
/ 27 сентября 2010

У меня на сцене есть экземпляр, который я вытащил из библиотеки во время разработки.Этот экземпляр ссылается на пользовательский класс, конструктор которого принимает аргумент.

package
{
    import flash.display.MovieClip;
    import flash.media.Sound;

    public class PianoKey extends MovieClip
    {
        var note:Sound;

        public function PianoKey(note:Sound)
        {
            this.note = note;
        }
    }
}

Очевидно, что попытка выполнить код как есть приводит к следующей ошибке подсчета аргументов:

ArgumentError:Ошибка № 1063: Несоответствие числа аргументов в PianoKey ().Ожидаемый 1, получил 0.

Есть ли способ установить аргументы для экземпляра, который был вручную перетащен на сцену?

Ответы [ 3 ]

1 голос
/ 27 сентября 2010

Почему бы не использовать вместо него сеттер?

package
{
    import flash.display.MovieClip;
    import flash.media.Sound;

    public class PianoKey extends MovieClip
    {
        var _note:Sound;

        public function PianoKey()
        {
        }

        public function set note(value:Sound)
        {
            this._note = value;
        }
    }
}
1 голос
/ 27 сентября 2010

Это может вам помочь. В Custom Class

требуются небольшие изменения
package
{
    import flash.display.MovieClip;
    import flash.media.Sound;

    public class PianoKey extends MovieClip
    {
        var note:Sound;

        public function PianoKey(note:Sound=null)
        {
            if(note!=null)
            {
              this.note = note;
            } 
        }
    }
}
1 голос
/ 27 сентября 2010

Я думаю, что единственный способ сделать это - создать компонент PianoKey. Это будет иметь свойства компонента, которые можно установить. Их очень сложно настроить.

...