Форум 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=204807)

alexrunaway 12.11.2013 00:04

Увеличение картинки. Проблема с позицией символа
 
прошу помочь с кодом на actionscript 3.
есть функция увеличения картинки и возварт в исходный размер,где currentPic картинка в массиве, а
podlogka - это мувиклип который появляется на заднем плане увеличенной картинки. Код работает,но при переходе на другой кадр например gotoAndStop(5) картинка остаётся хотя её на таймлайне в кадре 5 нет.помогите пожалуйста!диплом накрывается((

Код AS3:

function picWasClick(e:MouseEvent):void{
 
    if(podlogka.visible){
        trace(currentPic.parent.parent.parent);
        trace(currentPic.parent.parent);
        trace(currentPic.parent);       
        currentPic.scaleX = 1;
        currentPic.scaleY = 1;
        currentPic.x = currentPic.prevx;
        currentPic.y = currentPic.prevy;
        podlogka.visible = false;
        index = this.getChildIndex(currentPic);
    }else{
        currentPic = e.target;
        currentPic.prevx = currentPic.x;
        currentPic.prevy = currentPic.y;
        podlogka.visible = true;
        currentPic.scaleX = 2;
        currentPic.scaleY = 2;
        this.setChildIndex(podlogka, (this.numChildren-1));
        index = this.setChildIndex(currentPic, (this.numChildren-1));
        trace(this);trace(Stage);
        currentPic.x = (this.podlogka.width-currentPic.width)/2;
        currentPic.y = (this.podlogka.height-currentPic.height)/2;
    }
}


dimarik 12.11.2013 01:11

Друг, не обессудь. Меня терзает вопрос жизни и смерти: где тебя научили писать "if(" без пробела между "if" и скобкой "("? Я совершенно серьезен. Ответишь нормально -- помогу с кодом.

И велкам на наш форум )

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

dimarik 12.11.2013 01:40

Ну а по коду. Ты зачем оставляешь шансы переопределить свой(?) чёткий метод setChildIndex?
Код AS3:

this.setChildIndex(podlogka, (this.numChildren-1));

Когда я наблюдаю такую запись (this) у меня сразу включается рефлекс: что-то тут он (автор) задумал. А вот на
Код AS3:

super.setChildIndex(this.podlogka, (super.numChildren-1));

Я спокоен.

samana 12.11.2013 01:43

Цитата:

Сообщение от alexrunaway (Сообщение 1152053)
Код работает,но при переходе на другой кадр например gotoAndStop(5) картинка остаётся хотя её на таймлайне в кадре 5 нет

Так как вы пишете в кадрах и работаете с ними то:
это происходит потому, что вы программно меняете расположение дисплейОбъекта (setChildIndex), который лежит на самой сцене (root). Так же будет происходить с операциями addChild, addChildAt и т.п.
То-есть вам нужно избавиться от манипуляции расположения объектов на сцене.

Поместите все ваши объекты в контейнер (в мувик) и меняйте их расположение в нём.

alexrunaway 12.11.2013 12:47

По поводу табуляции кода могу ответить, что никто не учил, поэтому так и написан,учту. Вопрос: как будет выглядеть код если поместить все объекты в мувик?

samana 12.11.2013 17:45

Если у вас есть мувик mc1, а в нём мувик mc2. То обратиться к мувику mc2 нужно через mc1.
Код AS3:

mc1.mc2.x=150


alexrunaway 12.11.2013 18:38

т.е. нужно просто везде обращаться к currentPic через вложение в символ? например:
Код AS3:

mc1.currentPic.scaleX = 2;


Akopalipsis 12.11.2013 18:51

mc1, currentPic - это не имена, а ссылки на обьекты. Видите в адресной строке flasher.ru, далее указан путь forum, далее указан путь в эту тему. Вот и тут так же, в зависимости от глубины обьекта, к нему и путь нужно полный и последовательный указывать.

alexrunaway 12.11.2013 19:11

Да, я понимаю что это ссылки, путь к картинке в виде имен экземпляров объекта на сцене.Вроде заработало но теперь почему-то не работает вывод картинки на самый передний план

samana 12.11.2013 19:22

Картинка никогда не станет "выше" на сцене, чем контейнер в котором она находится. То-есть ваш контейнер должен быть "выше" всего содержимого на сцене, чтобы картинки в нём не кто не перекрывал.


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

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