2015-07-04 14 views
5

Tôi sử dụng Javascript nhắm mục tiêu Haxe.Sử dụng các lớp API Haxe rõ ràng

Tôi có một gói (được định nghĩa là một bên ngoài), "phaser", có chứa một lớp học Math cùng với nhiều loại khác. Tôi sử dụng import phaser.*; khi bắt đầu tệp của mình vì tôi sử dụng nhiều lớp từ gói này và tôi không muốn thêm tiền tố cho tất cả chúng với phaser..

Tôi muốn sử dụng the Math class from Haxe API, nhưng nếu tôi cố gắng sử dụng nó (ví dụ: Math.random()), trình biên dịch cho rằng tôi muốn sử dụng phaser.Math và cho tôi biết không có chức năng nào trong đó.

Tôi có thể viết rõ ràng rằng tôi muốn sử dụng HaxeMath lớp học chứ không phải phaser.Math?

Tôi đã thử haxe.Math nhưng không có may mắn ...

Cảm ơn trước

Trả lời

4

thử

import Math as HaxeMath; 

sau đó sử dụng HaxeMath. * Thay vì Math. *

lưu ý, không có gì đặc biệt về tên HaxeMath, bạn có thể làm

import Math as Freddy; 

sau đó sử dụng Freddy * thay vì Math *:.. P

+0

Cảm ơn! Ngay cả 'import Math;' hoạt động và ưu tiên cao hơn cho haxe 'Math' trên Phaser, tôi chỉ không nghĩ rằng mình cần nhập nó ... – YannP

+0

lol - Tôi thậm chí còn không nghĩ đến việc đó !! –

4

Hai cách để giải quyết nó:

  1. Sử dụng std.Math. ví dụ. std.Math.floor(1.1); hoặc typedef HxMath = std.Math; hoặc
  2. Thêm import Math as HxMath; trước import phaser.*;. Nếu bạn đang sử dụng phiên bản haxe sớm hơn 3.2, hãy sử dụng in thay vì as, tức là import Math in HxMath;.
+0

Cảm ơn, std.Math là chính xác những gì tôi đang tìm kiếm. Nó không xuất hiện trong tự động hoàn thành ... – YannP

Các vấn đề liên quan