Я новичок в OpenFL и играю с кодом OpenFL Starling Sample - Я замечаю @: сохраняю метаданные перед объявлением класса. Что это значит?Haxe/OpenFL - что делает @: держишь?
package scenes;
import starling.display.Image;
import starling.text.TextField;
import starling.utils.MathUtil.deg2rad;
import utils.TouchSheet;
@:keep class TouchScene extends Scene
{
public function new()
{
super();
var description:String = "[use Ctrl/Cmd & Shift to simulate multi-touch]";
var infoText:TextField = new TextField(300, 25, description, "DejaVu Sans");
infoText.x = infoText.y = 10;
addChild(infoText);
// to find out how to react to touch events have a look at the TouchSheet class!
// It's part of the demo.
var sheet:TouchSheet = new TouchSheet(new Image(Game.assets.getTexture("starling_sheet")));
sheet.x = Constants.CenterX;
sheet.y = Constants.CenterY;
sheet.rotation = deg2rad(10);
addChild(sheet);
}
}
благодарит
по какой причине нужен компилятор для устранения мертвого кода? как он знает, нужен ли код или нет? Я не понял. –
@VakhtangiBeridze - это оптимизация компилятора, доступная во многих компиляторах. Прочитайте все об этом здесь: https://en.wikipedia.org/wiki/Dead_code_elimination Очевидно, что есть плюсы и минусы, а метатеги, такие как '@: keep', позволяют нам контролировать эту функцию. –
@VakhtangiBeridze О, и компилятор знает, нужен ли вам код или нет, отслеживая использование классов, функций, переменных и т. Д. Это особенно полезно для больших библиотек, где вам может понадобиться только часть функций для вашего приложения. Компилятор удаляет весь код, который не нужен для вашего приложения. –