问题
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
回答1:
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
回答2:
Two ways to solve it:
- Use
std.Math
. e.g.std.Math.floor(1.1);
, ortypedef HxMath = std.Math;
, or - Add
import Math as HxMath;
beforeimport phaser.*;
. If you're using a haxe version earlier than 3.2, usein
instead ofas
, i.e.import Math in HxMath;
.
来源:https://stackoverflow.com/questions/31222219/use-haxe-api-classes-explicitly