私は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ああ、コンパイラは、クラス、関数、変数などの使用状況を追跡することによってコードが必要かどうかを知っています。アプリケーションの機能のサブセットが必要な大きなライブラリの場合に特に便利です。コンパイラは、あなたのアプリが機能するために不要なコードをすべて削除します。 –