ActionScript 3.0 - Как рисовать прямоугольники в каждом углу мувиклипа - PullRequest
0 голосов
/ 15 октября 2010

Я пытаюсь нарисовать 4 поля в каждом углу мувиклипа, но не могу понять, как определить верхний правый угол, нижний левый и нижний правый угол. Есть ли более простые решения, которые я мог бы использовать, чтобы заменить эту технику или заставить ее работать? Спасибо

Код ниже представляет собой прямоугольник с поворотом на 135 градусов.

    var square:MovieClip = new MovieClip();
    square.graphics.lineStyle(2,0x00ff00);
    square.graphics.beginFill(0x0000FF);
    square.graphics.drawRect(0,0,100,50);
    square.graphics.endFill();
    square.x = 200;
    square.y = 150;
    square.rotation = 135;
    addChild(square);


trace(square.getBounds(square));
trace(this.getBounds(square));
trace(this.getBounds(this));

Ответы [ 2 ]

2 голосов
/ 15 октября 2010

Метод getBounds() возвращает прямоугольный объект с координатами / шириной x a y и высотой экранного объекта относительно объекта, переданного в качестве параметра. Итак:

square.getBounds(stage); даст вам прямоугольник с положением квадратов относительно сцены (при условии, что квадрат является дочерним по отношению к сцене, но это может быть любой родительский экранный объект). Чтобы получить доступ к координатам и размерам, вы можете использовать его следующим образом.

var bounds = square.getBounds(stage);
trace(bounds.x); 
trace(bounds.y);
trace(bounds.width);
trace(bounds.height)

UPDATE

Ах, я полагаю, вам нужно найти углы поворота , повернутого , а не углы ограничивающей области. В этом случае вы, вероятно, могли бы использовать некоторую тригонометрию с вашим углом поворота и найти длину смещения ваших углов.

Но я не думаю, что это необходимо, если я понимаю, что вы пытаетесь сделать. Если вам нужно что-то нарисовать (скажем, в другой рамке) по углам вашего квадратного фрагмента ролика, вы можете добавить их как дочерние элементы квадрата. Таким образом, если вы поверните родительский квадрат, все дочерние видеоклипы будут вращаться вместе с ними. Итак:

var square:MovieClip = new MovieClip();
//... all your code from above to draw the square

var clip:MovieClip = new MovieClip();
//...some code here to draw some graphics in your clip

//Put the clip at the bottom right corner of the square
clip.x = square.width;
clip.y = square.height;
square.addChild(clip);
0 голосов
/ 16 октября 2010

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

var widthSquare: int = 100; var heightSquare: int = 50;

var square: MovieClip = new MovieClip (); square.graphics.lineStyle (2,0x00ff00); square.graphics.beginFill (0x0000FF); square.graphics.drawRect (0,0, widthSquare, heightSquare); square.graphics.endFill (); квадрат.х = 200; квадрат.y = 150; квадратное вращение = 135; AddChild (квадрат);

var square1width: int = widthSquare- (widthSquare-20); // если ширина квадрата 1 равна 20, то вычитаем 20 var square1height: int = heightSquare- (heightSquare-10); // если высота квадрата равна 10, вычтите 10

var square1: MovieClip = new MovieClip (); square1.graphics.lineStyle (2,0x000000); square1.graphics.beginFill (0x000000); square1.graphics.drawRect (0,0, square1width, square1height); square1.graphics.endFill (); square.addChild (Square1);

var square2width: int = widthSquare- (widthSquare-30); // если ширина квадрата2 равна 30, вычитаем 30 var square2height: int = heightSquare- (heightSquare-15); // если высота квадрата 2 равна 15, вычтите 15

var square2: MovieClip = new MovieClip (); square2.graphics.lineStyle (2,0x000000); square2.graphics.beginFill (0x000000); square2.graphics.drawRect (0,0, square2width, square2height); square2.graphics.endFill (); square2.x = widthSquare-square2width; square2.y = heightSquare-square2height; square.addChild (square2);

// square.rotation = 35;

Надеюсь, это поможет вам ... Попробуйте.

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