Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Shape.graphics.clear() перестал работать (http://www.flasher.ru/forum/showthread.php?t=213662)

Hoteng 08.12.2016 23:11

Shape.graphics.clear() перестал работать
 
Доброго времени суток, у меня возникла проблема с методом clear() , который в одночасье просто перестал работать, хотя до этого все было хорошо.
Код AS3:

var shap:Shape=new Shape();
                shap.graphics.clear();
                shap.graphics.lineStyle(5,0xFFF922,1);
                shap.graphics.moveTo(tower.x-30,tower.y+20);
                shap.graphics.lineTo(Gruz.x,Gruz.y);
                this.addChild(shap);


Zebestov 09.12.2016 00:56

Код AS3:

var shap:Shape=new Shape();

Эта строка создает каждый раз новый экземпляр Shape и добавляет его на сцену. Таким образом вызов метода clear относится к новому (и чистому) шейпу, а не к тому, что уже висит на сцене и в котором что-то нарисовано.
Чтобы исправить дело, нужно сделать переменную shap полем класса, в котором происходит дело, как-то так:
Код AS3:

private var shap:Shape

а в конструкторе один раз создать и добавить на сцену экземпляр класса Shape:
Код AS3:

shap = new Shape();
addChild(shap);

соответственно и твой код нужно привести к такому виду:
Код AS3:

shap.graphics.clear();
shap.graphics.lineStyle(5,0xFFF922,1);
shap.graphics.moveTo(tower.x-30,tower.y+20);
shap.graphics.lineTo(Gruz.x,Gruz.y);



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

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