У меня есть объект MovieClip, который экспортируется для ActionScript (AS3) в файл .swc.
Когда я помещаю экземпляр клипа на сцену без каких-либо изменений, он появляется в верхнем левом углу, примерно наполовину за сценой (т.е. виден только нижний правый квадрант объекта). Я понимаю, что это потому, что у клипа есть точка регистрации, которая не в верхнем левом углу.
Если вы вызываете getBounds () для мувиклипа, вы можете получить границы клипа (предположительно из «точки», на которой он выровнен), который выглядит примерно так (слева: -303, сверху: -100, справа: 303 , внизу: 100), вы можете вычесть левое и верхнее значения из клипа x и y:
clip.x -= bounds.left;
clip.y -= bounds.top;
Это похоже на правильное выравнивание клипа на сцене по левому верхнему краю клипа в углу сцены.
Но! Следуя этой логике, кажется, не работает, когда выровняете ее по центру сцены!
clip.x = (stage.stageWidth / 2);
etc...
Это создает сумасшедшую параллельную вселенную, где клип теперь находится в правом нижнем углу сцены.
Единственная подсказка, которую я имею, это то, что я смотрю на:
clip.transform.matrix
и
clip.transform.concatenatedMatrix
матрица имеет значение tx 748 (половина высоты ступени), ty значение 426 (половина высоты ступени)
concatenatedMatrix имеет значение tx 1699,5 и значение ty 967,75
Это также, очевидно, где размещается мувиклип, но почему? Откуда этот дополнительный перевод?