Я скачал скрипт из интернета и он отлично работает.Я начал адаптировать код в нем для нового приложения.Но я получаю следующую ошибку 1061: вызов возможно неопределенного метода drawShape через ссылку со статическим типом Class.
При просмотре кода я вижу, что метод, вызывающий drawShape,статический метод, вызывающий его так: ShapeDrawer.drawShape (); Обратите внимание, что класс ShapeDrawer вообще не импортируется.
Тогда метод drawShape таков: внутренняя функция drawShape () Может кто-нибудь объяснить мне, почему он может работать в приложении, которое я скачал, а не в моем.Он был создан для использования с флеш-плеером 9, а мой - десять, который может сыграть роль.
Вот как это выглядит:
package puzzle
{
import flash.geom.Point;
import utils.MyMath;
public class PuzzleCaculater
{
public static function combineTwoPieces(pieceA:PuzzlePiece , pieceB:PuzzlePiece):void
{
for each(var drawingPiece in pieceB.unionPieces)
{
ShapeDrawer.drawShape(pieceA.graphicLayer , drawingPiece.shapeData , true);
drawingPiece.disactive();
drawingPiece.myGroup = pieceA.myGroup;
drawingPiece.graphicLayer = pieceA.graphicLayer;
pieceA.unionPieces.push(drawingPiece);
drawingPiece.unionPieces = pieceA.unionPieces;
}
}
}
}
package puzzle
{
public class ShapeDrawer
{
internal function drawShape(target:Shape , drawingShapedata:Object , useBitmap:Boolean = true):void
{
var leftShape:Array= drawingShapedata.leftShape;
var topShape:Array= drawingShapedata.topShape;
var rightShape:Array= drawingShapedata.rightShape;
var bottomShape:Array= drawingShapedata.bottomShape;
var shapes:Array= [];
shapes.push(leftShape);
shapes.push(topShape);
shapes.push(rightShape);
shapes.push(bottomShape);
}
}
}