Je suis nouveau à OpenFL et jouer avec le code OpenFL Starling Sample - Je remarque un @: garder métadonnées avant la déclaration de classe. Qu'est-ce que ça veut dire?Haxe/OpenFL - qu'est-ce que @: garder signifie?
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);
}
}
grâce
pour quelle raison le compilateur doit-il éliminer le code mort? comment sait-il besoin de coder ou non? Je n'ai pas compris. –
@VakhtangiBeridze c'est une optimisation de compilateur disponible dans de nombreux compilateurs. Lisez tout à ce sujet ici: https://en.wikipedia.org/wiki/Dead_code_elimination Évidemment, il y a des avantages et des inconvénients, et des métabalises comme '@: keep' nous permettent de contrôler la fonctionnalité. –
@VakhtangiBeridze Oh, et le compilateur sait si vous avez besoin de code ou non en suivant l'utilisation des classes, fonctions, variables, etc. Il est particulièrement utile pour les grandes bibliothèques, où vous aurez besoin d'un sous-ensemble de fonctionnalités. Le compilateur supprime tout le code inutile pour que votre application fonctionne. –