Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Проблема c getBounds (http://www.flasher.ru/forum/showthread.php?t=211370)

SergSid 14.08.2015 20:24

Проблема c getBounds
 
Вложений: 1
Пытаюсь самостоятельно освоить Flash
Нужно "поднять" версию проигрывателя готовой игры.
При компиляции Flash6 все работает.
В Flash7 спрайт стоит на месте...
Дошел до момента:
b = _parent.getBounds(_parent);
в 6-ке trace ("b-"+b) дает b-
в 7-ке trace ("b-"+b) дает b-undefined
Соответственно дальше не работает.
Кто может подсказать , как исправить?
Сильно не пинайте, я только только начал заниматься....

dark256 18.08.2015 13:45

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

В любом случае, вы как-то не так вызываете этот метод, ибо:

Код:

getBounds (MovieClip.getBounds method)
public getBounds(bounds:Object) : Object

Returns properties that are the minimum and maximum x and y coordinate values of the movie clip, based on the bounds parameter.

Note: Use MovieClip.localToGlobal() and MovieClip.globalToLocal() methods to convert the movie clip's local coordinates to Stage coordinates, or Stage coordinates to local coordinates, respectively.

You can extend the methods and event handlers of the MovieClip class by creating a subclass.

Availability: ActionScript 1.0; Flash Player 5

Parameters
bounds:Object - The target path of the Timeline whose coordinate system you want to use as a reference point.

Returns
Object - An object with the properties xMin, xMax, yMin, and yMax.

Example
The following example creates a movie clip called square_mc. The code draws a square for that movie clip and uses MovieClip.getBounds() to display the coordinate values of the instance in the Output panel.

this.createEmptyMovieClip("square_mc", 1);
square_mc._x = 10;
square_mc._y = 10;
square_mc.beginFill(0xFF0000);
square_mc.moveTo(0, 0);
square_mc.lineTo(100, 0);
square_mc.lineTo(100, 100);
square_mc.lineTo(0, 100);
square_mc.lineTo(0, 0);
square_mc.endFill();

var bounds_obj:Object = square_mc.getBounds(this);
for (var i in bounds_obj) {
    trace(i+" --> "+bounds_obj[i]);
}


The following information appears in the Output panel:

yMax --> 110
yMin --> 10
xMax --> 110
xMin --> 10


callme 18.08.2015 14:02

dark256, можно так писать
Код AS1/AS2:

clip.getBounds(clip);

В данном случае bounds посчитается относительно stage. По крайней мере в ActionScript 3.

samana 18.08.2015 18:13

Цитата:

Сообщение от callme (Сообщение 1185828)
dark256, можно так писать
Код AS1/AS2:

clip.getBounds(clip);

В данном случае bounds посчитается относительно stage. По крайней мере в ActionScript 3.

Разве? По-моему посчитается относительно того-же clip, ведь в данном моменте можно сосчитать getBounds даже не добавляя clip в отображение.

caseyryan 19.08.2015 07:53

Цитата:

Разве? По-моему посчитается относительно того-же clip, ведь в данном моменте можно сосчитать getBounds даже не добавляя clip в отображение.
Именно. Никакой stage там не при делах. В скобках указывается объект, чья система координат используется

callme 19.08.2015 08:35

samana, caseyryan, спасибки, только сейчас начал толком понимать как этот метод работает :)

dark256 19.08.2015 12:20

Я про то что, на выходе метода - объект.
Соотв трэйс объекта - неверно. Надо трэйсить его св-ва таки.
А к какой системе координат там что цеплять - уже другая история.


Часовой пояс GMT +4, время: 17:39.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.