[haXe] best strategy to port an existing js library
Franco Ponticelli
franco.ponticelli at gmail.com
Fri Dec 7 17:37:57 CET 2007
I lose type checking only in the wrapping and since normally it is used just
once I don't think it is that bad. Also this way the code (both in js and
haxe) is shorter ;-)
On Dec 7, 2007 4:30 PM, Ian <bcposn802 at sneakemail.com> wrote:
> wow. that wasn't at all what I was thinking, but I prefer this. you
> lose type checking, but you eliminate the wrapper. my thought was:
>
> // js library (same)
> function niceAlert(txt) {
> alert("### " + txt + " ###");
> }
>
> // js wrapper
> function JsWrapper() {
> this.callNiceAlert = niceAlert;
> }
>
> // haxe code
> extern class JsWrapper {
> public function new():Void;
> public function callNiceAlert():Void;
> }
> class Main
> {
> public static function main() {
> var wrapper = new JsWrapper();
> wrapper.callNiceAlert("hello to you");
> }
> }
>
> -ianxm
>
> Franco Ponticelli franco.ponticelli-at-gmail.com |haxe| wrote:
> > Yes, I think you are correct. The only two options are depicted in the
> > example below... any other idea?
> >
> > // js library
> > function niceAlert(txt) {
> > alert("### " + txt + " ###");
> > }
> >
> > // haxe code
> > class Main {
> > public static function main() {
> > Main.msg("hello to you");
> > Main.msg2("goodbye");
> > }
> >
> > public static var msg : String -> Void = untyped niceAlert;
> >
> > public static function msg2(s : String) {
> > untyped niceAlert(s);
> > }
> > }
> >
> > Franco.
> >
> > On Dec 7, 2007 3:42 PM, Ian <bcposn802 at sneakemail.com
> > <mailto:bcposn802 at sneakemail.com>> wrote:
> >
> > how would you call a javascript function from haXe? It seems like
> > extern only works with classes.
> > I guess I could wrap the javascript functions in a javascript class.
> >
> > -ianxm
> >
> > Franco Ponticelli franco.ponticelli-at-gmail.com
> > <http://franco.ponticelli-at-gmail.com> |haxe| wrote:
> > > There is no loader and I doubt you need one since you can
> > include your
> > > JS library just before the haXe generated file.
> > > About wrapping you can use both extern or typedef depending on
> what
> > > you are implementing.
> > > In your case the extern could be the right solution.
> > >
> > > extern HelloClass {
> > > public function new() : Void;
> > > public function showText() : String;
> > > }
> > >
> > > Pay attention to the case of fields that in haXe must start with a
> > > lower case letter. This can be origin to incompabilities.
> > >
> > > Regards,
> > > Franco.
> > >
> > > On Dec 7, 2007 11:00 AM, picnic < bitvolt at gmail.com
> > <mailto:bitvolt at gmail.com>
> > > <mailto:bitvolt at gmail.com <mailto:bitvolt at gmail.com>>> wrote:
> > >
> > > hi
> > > what is best strategy to port an existing js library? How is
> > > encapsulation done, e.g. for an js class in a separate file:
> > >
> > > -------------HelloClass.js------------------
> > > function HelloClass(){
> > > var m_text = "Hello World";
> > > this.ShowText = DisplayText;
> > > function DisplayText(){
> > > alert( m_text );
> > > return;}}
> > > --------------------------------------------------
> > >
> > > i guess there should be some kind of a loader function in
> > haxe.js
> > >
> > > thanks
> > > picnic
> > >
> > > --
> > > haXe - an open source web programming language
> > > http://haxe.org
> > >
> > >
> >
> >
> >
> > --
> > haXe - an open source web programming language
> > http://haxe.org
> >
> >
>
>
>
> --
> haXe - an open source web programming language
> http://haxe.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.motion-twin.com/pipermail/haxe/attachments/20071207/d0084ba1/attachment.htm
More information about the Haxe
mailing list