Простой вопрос о позиционировании созданных классом экранных объектов в ActionScript 3 - PullRequest
0 голосов
/ 16 марта 2011

Возьмите этот класс:

    package  {
    import flash.display.MovieClip;

    public class test extends MovieClip {

        public function test(parentMC) {
            var s=new MovieClip()
            s.graphics.lineStyle(1,0x000000,1)
            s.graphics.drawCircle(200,200,100)
            parentMC.addChild(s)
        }

    }

}

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

var s=new test(stage)
s.x=500

Спасибо!

Ответы [ 2 ]

2 голосов
/ 16 марта 2011

Попробуйте вместо этого:

package  

{
    import flash.display.Sprite;

    public class Test extends Sprite   
    {

        public function Test() 
        {
            graphics.beginFill(0xFF0000);
            graphics.lineStyle(1,0x000000,1);
            graphics.drawCircle(200,200,100);
            graphcis.endFill();

        }// end function

    }// end class

}// end package

и реализовать это так:

var test:Test = new Test();
test.x = 500;
addChild(test);

Проблема заключалась в том, что вы не добавляли локальный экранный объект класса Test (в конструкторе класса Test) в контейнер экранных объектов Test, а добавляли его в контейнер экранных объектов parentMC.

0 голосов
/ 16 марта 2011

Я почти уверен, что вы не возвращаете "s" из своей функции.

public function test(parentMC) {
            var s=new MovieClip()
            s.graphics.lineStyle(1,0x000000,1)
            s.graphics.drawCircle(200,200,100)
            parentMC.addChild(s)
            return s; // THIS IS MISSING
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...