Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Переместить объект на передний план! (http://www.flasher.ru/forum/showthread.php?t=196196)

zomkoner 20.03.2013 21:38

Переместить объект на передний план!
 
Всем доброго времени суток! Перейду сразу к сути:
Имеется Sprite, при нажатии начинается перетаскивание его! Но нужно спрайт который перетаскиваем переместить на передний план!
Код AS3:

                public function func_e_Down(e:MouseEvent):void{
                        priv_starting_spr = new Point(e.target.x, e.target.y);
                        e.target.startDrag();
                        e.target.filters = [new DropShadowFilter()];
                        setChildIndex(DisplayObject(e.target), numChildren-1);
 
                }


bav 20.03.2013 21:43

Привет! Перемещай на передний план так!
Код AS3:

(e.target as DisplayObject).parent.addChild(e.target);

Или так!
Код AS3:

stage.addChild(e.target);


zomkoner 20.03.2013 21:48

bav Спасибо, но меня интересует именно метод setChildIndex.

Добавлено через 13 минут
Да и при использовании :

Цитата:

Код AS3:

(e.target as DisplayObject).parent.addChild(e.target);

Или так:
Код AS3:

stage.addChild(e.target);


Тоже выдает ошибку!

GBee 20.03.2013 22:26

Потому что надо привести к DisplayObject'у
Код AS3:

addChild(e.target as DisplayObject);

он перебросит данный объект на самый вверх без обращения к numChildren

in4core 20.03.2013 22:59

Цитата:

(e.target as DisplayObject).parent.addChild(e.target);
Ну это конечно жестакч! Зачем учить такому людей? По поводу setChildIndex - в чем проблема? Метод простой, работает всегда

zomkoner 20.03.2013 23:21

Цитата:

Сообщение от GBee (Сообщение 1126068)
Потому что надо привести к DisplayObject'у
Код AS3:

addChild(e.target as DisplayObject);

он перебросит данный объект на самый вверх без обращения к numChildren

Это конечно работает, но ошибку в flash builder на это строке выдает:
Код:

Это строка содержит несколько выделений:
-1118: Неявное исправление значения статического типа Object на возможный несвязанный тип
 flash.display:DisplayObject.
-1120: Обращение несуществующего свойства DisplayObject.

Меня смущает что справа весит это крестик. Почему ошибку выдает а метод работает?

Добавлено через 5 минут
Цитата:

Сообщение от in4core (Сообщение 1126076)
Ну это конечно жестакч! Зачем учить такому людей? По поводу setChildIndex - в чем проблема? Метод простой, работает всегда

Проблема в том что он не работает, если addChild работает но выдает ошибку, то:
Код AS3:

setChildIndex(e.target,numChildren -1);
// или
setShildIndex(DisplayObject(e.target), numChildren-1);

и не работает и выдает ошибку!
Код:

1180: Вызов предположительно неопределенного метода DisplayObject.

GBee 20.03.2013 23:28

импортните, наконец, DisplayObject

zomkoner 20.03.2013 23:31

заработало вот так:
Код AS3:

                        setChildIndex(e.target as DisplayObject, numChildren -1);

Всем спасибо большое! Я наверно где отпечатался, т.к. удалил всё скомпилировал, написал заново и все нормально...
))) тема закрыта! всем большое спасибо ещё раз!

Добавлено через 1 минуту
Цитата:

Сообщение от GBee (Сообщение 1126081)
импортните, наконец, DisplayObject

да у меня он был импортирован, иначе бы у меня ничего бы не работало!

UserSuperPupsik 21.08.2013 21:21

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

Код AS3:

var circle:Sprite = new Sprite();
import flash.utils.Dictionary;
import flash.display.DisplayObject;
circle.graphics.lineStyle(1, 0x000000);
circle.graphics.beginFill(0x0000FF, 0.5);
circle.graphics.drawCircle(0, 0, 40);
circle.x=100
circle.y=111

И дан код, добавляющий 2 объекта на сцену.
Код AS3:

var a2:S3=new S3();
a2.x=200;
a2.y=200;
addChild(a2);
 
var a1:S3=new S3();
a1.x=200;
a1.y=300;
addChild(a1);

Что написать, чтобы объекты были на разных планах: circle был на 1-ом плане, a1 на 2-ом плане, a2 на 3-м плане?

Akopalipsis 21.08.2013 21:36

Вот тут есть ответы на все Ваши вопросы. я не хочу сказать, что Вам не хочу помогать, я наоборот пытаюсь вам помочь! Вот если Вы после прочтения не поймёте, тогда скажите об этом. Выставите в настройках сайта последнею версию плеера и последнею версию cc. И обратите внимание на вот такую вкладку, её нужно открывать.
Цитата:

Общедоступные методы
Показать унаследованные общедоступные методы
http://help.adobe.com/ru_RU/FlashPla...#methodSummary


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

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