Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Use Haxe API classes explicitly

I use Haxe targeting Javascript.

I have a package (defined as an extern), "phaser", that contains a Math class along with many others. I use import phaser.*; at the beginning of my files because I use many classes from this package and I don't want to prefix them all with phaser..

I would like to use the Math class from Haxe API, but if I try to use it (e.g Math.random()), the compiler thinks I want to use phaser.Math and tells me there is no such function in it.

Can I explicitly write that I want to use Haxe Math class and not phaser.Math ?

I've tried haxe.Math but no luck...

Thanks in advance

like image 873
Yann Pellegrini Avatar asked Jul 04 '15 15:07

Yann Pellegrini


2 Answers

Try

import Math as HaxeMath;

then use HaxeMath.* instead of Math.*

Note, nothing special about the name HaxeMath, you could do

import Math as Freddy;

then use Freddy.* instead of Math.*. :p

like image 175
Jaromanda X Avatar answered Oct 23 '22 21:10

Jaromanda X


Two ways to solve it:

  1. Use std.Math. e.g. std.Math.floor(1.1);, or typedef HxMath = std.Math;, or
  2. Add import Math as HxMath; before import phaser.*;. If you're using a haxe version earlier than 3.2, use in instead of as, i.e. import Math in HxMath;.
like image 41
Andy Li Avatar answered Oct 23 '22 21:10

Andy Li