
Код 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);