コード例 #1
0
 /// <summary>
 /// This is a javascript application.
 /// </summary>
 /// <param name="page">HTML document rendered by the web server which can now be enhanced.</param>
 public Application(IDefaultPage page)
 {
     // Initialize ApplicationSprite
     sprite.wmode();
     sprite.AttachSpriteTo(page.Content);
     @"Hello world".ToDocumentTitle();
     // Send data from JavaScript to the server tier
     service.WebMethod2(
         @"A string from JavaScript.",
         value => value.ToDocumentTitle()
         );
 }
コード例 #2
0
        /// <summary>
        /// This is a javascript application.
        /// </summary>
        /// <param name="page">HTML document rendered by the web server which can now be enhanced.</param>
        public Application(IApp page)
        {
            sprite.wmode();

            sprite.AttachSpriteToDocument().With(
                   embed =>
                   {
                       embed.style.SetLocation(0, 0);
                       embed.style.SetSize(Native.Window.Width, Native.Window.Height);

                       Native.Window.onresize +=
                           delegate
                           {
                               embed.style.SetSize(Native.Window.Width, Native.Window.Height);
                           };
                   }
               );


            #region con
            var con = new ConsoleForm();

            con.InitializeConsoleFormWriter();

            con.Show();

            con.Height = 150;
            con.Left = Native.Window.Width - con.Width;
            con.Top = 0;

            Native.Window.onresize +=
                  delegate
                  {
                      con.Left = Native.Window.Width - con.Width;
                      con.Top = 0;
                  };


            con.Opacity = 0.6;




            // !! not compatible yet

            con.HandleFormClosing = false;
            con.PopupInsteadOfClosing();
            #endregion



            sprite.fps +=
                (fps, nid) =>
                {
                    new { fps, nid }.ToString().ToDocumentTitle();
                };


            #region context_new_remotegame
            sprite.context_new_remotegame +=
                remotegame =>
                {
                    var remotegame_con = new ConsoleForm();

                    remotegame_con.Show();
                    remotegame_con.Left = 0;
                    remotegame_con.Top = Native.Window.Height - remotegame_con.Height;

                    remotegame_con.Opacity = 0.5;

                    remotegame.AtTitleChange +=
                        e => remotegame_con.Text = e;

                    remotegame.AtWriteLine +=
                        e =>
                        {
                            remotegame_con.textBox1.AppendText(e + Environment.NewLine);
                            remotegame_con.textBox1.ScrollToCaret();
                        };


                    remotegame_con.HandleFormClosing = false;
                    remotegame_con.PopupInsteadOfClosing();
                };
            #endregion


            var sprites_events = new BindingListWithEvents<ApplicationSprite>();
            var sprites = sprites_events.Source;

            sprites_events.Added +=
                (fsprite, i) =>
                {
                    Console.WriteLine(i + "# Console ready!");

                    fsprite.InitializeConsoleFormWriter(
                        Console_Write: x => Console.Write(x),
                        Console_WriteLine: x =>
                            {
                                var lines = x.Split(Environment.NewLine);

                                foreach (var item in lines)
                                {
                                    Console.WriteLine(i + "# " + item);
                                }
                            }
                    );

                    #region lets do two way binding here.



                    // fsprite -> sprite
                    fsprite.context_onmessage += xml =>
                    {
                        // script: error JSC1000: No implementation found for this native method, please implement [static System.Linq.Enumerable.Except(System.Collections.Generic.IEnumerable`1[[FlashHeatZeekerWithStarlingB2.ApplicationSprite, FlashHeatZeekerWithStarlingB2.Application, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Collections.Generic.IEnumerable`1[[FlashHeatZeekerWithStarlingB2.ApplicationSprite, FlashHeatZeekerWithStarlingB2.Application, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]])]

                        sprites.WithEach(
                            x =>
                            {
                                // prevent echo
                                if (x == fsprite)
                                    return;

                                x.game_postMessage(xml);
                            }
                        );
                    };

                    #endregion
                };


            sprites.Add(sprite);

            #region game_InitializeFrameDiagnostics
            sprite.game_InitializeFrameDiagnostics(
                __FrameDiagnostics =>
                {
                    Console.WriteLine("new FrameDiagnostics");

                    var x = new FrameDiagnostics();

                    x.Show();

                    Console.WriteLine("new FrameDiagnostics Show, can you see it?");


                    Native.Window.onresize +=
                      delegate
                      {
                          x.Left = Native.Window.Width - x.Width;
                          x.Top = Native.Window.Height - x.Height;
                      };


                    x.Initialize(__FrameDiagnostics);

                    // Error	8	'Abstractatech.ConsoleFormPackage.Library.ConsoleForm' does not contain a definition for 'PopupInsteadOfClosing' and no extension method 'PopupInsteadOfClosing' accepting a first argument of type 'Abstractatech.ConsoleFormPackage.Library.ConsoleForm' could be found (are you missing a using directive or an assembly reference?)	X:\jsc.svn\examples\actionscript\svg\FlashHeatZeeker\FlashHeatZeekerWithStarlingB2\Application.cs	85	17	FlashHeatZeekerWithStarlingB2
                    // wtf?
                    x.PopupInsteadOfClosing();
                    x.Opacity = 0.7;

                    // can we pop it up?


                    x.JoinMultiplayer.Click +=
                        delegate
                        {
                            var f = new Form();
                            // make it small
                            f.Height = 200;

                            var fsprite = new ApplicationSprite();
                            fsprite.src_fixup();
                            fsprite.wmode();


                            var fspriteelement = fsprite.AttachSpriteTo(
                                f.GetHTMLTargetContainer()
                            );

                            #region ClientSizeChanged / PopupInsteadOfClosing has a bug
                            f.ClientSizeChanged +=
                                delegate
                                {
                                    var cs = f.ClientSize;

                                    fspriteelement.style.SetSize(cs.Width,
                                        cs.Height
                                    );
                                };
                            #endregion

                            f.Show();
                            f.PopupInsteadOfClosing();

                            // do events break if popup mode is changed?
                            fsprite.fps +=
                                  (fps, nid) =>
                                  {
                                      new { fps, nid }.ToString().ToTitle(f);
                                  };




                            sprites.Add(fsprite);
                            // what if we have more of these?
                        };
                }
            );
            #endregion








        }
コード例 #3
0
        /// <summary>
        /// This is a javascript application.
        /// </summary>
        /// <param name="page">HTML document rendered by the web server which can now be enhanced.</param>
        public Application(IApp page)
        {
            sprite.wmode();

            sprite.AttachSpriteToDocument().With(
                embed =>
            {
                embed.style.SetLocation(0, 0);
                embed.style.SetSize(Native.Window.Width, Native.Window.Height);

                Native.Window.onresize +=
                    delegate
                {
                    embed.style.SetSize(Native.Window.Width, Native.Window.Height);
                };
            }
                );


            #region con
            var con = new ConsoleForm();

            con.InitializeConsoleFormWriter();

            con.Show();

            con.Left = Native.Window.Width - con.Width;
            con.Top  = 0;

            Native.Window.onresize +=
                delegate
            {
                con.Left = Native.Window.Width - con.Width;
                con.Top  = 0;
            };


            con.Opacity = 0.6;


            sprite.InitializeConsoleFormWriter(
                Console.Write,
                Console.WriteLine
                );
            #endregion



            sprite.fps +=
                fps =>
            {
                con.Text = new { fps }.ToString();
            };


            sprite.context_new_remotegame +=
                remotegame =>
            {
                var remotegame_con = new ConsoleForm();

                remotegame_con.Show();
                remotegame_con.Left = 0;
                remotegame_con.Top  = Native.Window.Height - remotegame_con.Height;

                remotegame_con.Opacity = 0.5;

                remotegame.AtTitleChange    +=
                    e => remotegame_con.Text = e;

                remotegame.AtWriteLine +=
                    e =>
                {
                    remotegame_con.textBox1.AppendText(e + Environment.NewLine);
                    remotegame_con.textBox1.ScrollToCaret();
                };
            };

            {
                int c = 2000;

                Action <MessageEvent> window_onmessage =
                    e =>
                {
                    var xml = XElement.Parse((string)e.data);

                    c++;
                    //Console.WriteLine(c + " window -> sprite " + xml);

                    sprite.game_postMessage(xml);
                };


                Console.WriteLine("add window_onmessage");
                Native.Window.onmessage += window_onmessage;
            }

            Action <XElement> sprite_context_onmessage = delegate { };

            int ccc = 0;
            sprite.context_onmessage +=
                e =>
            {
                ccc++;
                //Console.WriteLine(ccc + " sprite ->  " + e);
                sprite_context_onmessage(e);
            };

            if (Native.Window.opener != null)
            {
                // opener closes, we close.
                Native.Window.opener.onbeforeunload +=
                    delegate
                {
                    Native.Window.close();
                };

                sprite_context_onmessage +=
                    e =>
                {
                    Native.Window.opener.postMessage(e.ToString());
                };
            }
            else
            {
                new Button {
                    Text = "Secondary View"
                }.With(
                    connect =>
                {
                    connect.AttachTo(con);

                    connect.Left = 8;
                    connect.Top  = 8;

                    connect.Click +=
                        delegate
                    {
                        var w = Native.Window.open(Native.Document.location.href, "_blank", 600, 600, false);


                        w.onload +=
                            delegate
                        {
                            Console.WriteLine("loaded: " + w.document.location.href);

                            if (w.document.location.href == "about:blank")
                            {
                                // fck you blank:P 4h of debugging for this.

                                return;
                            }

                            //Native.Window.onmessage +=
                            //     e =>
                            //     {
                            //         if (e.source == w)
                            //             return;

                            //         // relay, not echo
                            //         w.postMessage(e.data);
                            //     };

                            var w_closed = false;

                            w.onbeforeunload +=
                                delegate
                            {
                                w_closed = true;
                            };

                            var xcc = 0;
                            Action <XElement> __sprite_context_onmessage = e =>
                            {
                                if (w_closed)
                                {
                                    return;
                                }

                                xcc++;
                                //Console.WriteLine(xcc + " to child ->  " + e);
                                w.postMessage(e.ToString());
                            };


                            sprite_context_onmessage += __sprite_context_onmessage;
                        };
                    };
                }
                    );
            }
        }
コード例 #4
0
        /// <summary>
        /// This is a javascript application.
        /// </summary>
        /// <param name="page">HTML document rendered by the web server which can now be enhanced.</param>
        public Application(IApp page)
        {
            sprite.AttachSpriteToDocument().With(
                embed =>
            {
                embed.style.SetLocation(0, 0);
                embed.style.SetSize(Native.window.Width, Native.window.Height);

                Native.window.onresize +=
                    delegate
                {
                    embed.style.SetSize(Native.window.Width, Native.window.Height);
                };
            }
                );


            #region con
            var con = new ConsoleForm();

            con.InitializeConsoleFormWriter();

            con.Show();

            con.Height = 150;
            con.Left   = Native.window.Width - con.Width;
            con.Top    = 0;

            Native.window.onresize +=
                delegate
            {
                con.Left = Native.window.Width - con.Width;
                con.Top  = 0;
            };


            con.Opacity = 0.6;



            // !! not compatible yet

            con.HandleFormClosing = false;
            con.PopupInsteadOfClosing();
            #endregion



            sprite.fps +=
                (fps, nid) =>
            {
                new { fps, nid }.ToString().ToDocumentTitle();
            };


            #region context_new_remotegame
            sprite.context_new_remotegame +=
                remotegame =>
            {
                var remotegame_con = new ConsoleForm();

                remotegame_con.Show();
                remotegame_con.Left = 0;
                remotegame_con.Top  = Native.window.Height - remotegame_con.Height;

                remotegame_con.Opacity = 0.5;

                remotegame.AtTitleChange    +=
                    e => remotegame_con.Text = e;

                remotegame.AtWriteLine +=
                    e =>
                {
                    remotegame_con.textBox1.AppendText(e + Environment.NewLine);
                    remotegame_con.textBox1.ScrollToCaret();
                };


                remotegame_con.HandleFormClosing = false;
                remotegame_con.PopupInsteadOfClosing();
            };
            #endregion


            var sprites_events = new BindingListWithEvents <ApplicationSprite>();
            var sprites        = sprites_events.Source;

            sprites_events.Added +=
                (fsprite, i) =>
            {
                Console.WriteLine(i + "# Console ready!");

                fsprite.InitializeConsoleFormWriter(
                    Console_Write: x => Console.Write(x),
                    Console_WriteLine: x =>
                {
                    var lines = x.Split(Environment.NewLine);

                    foreach (var item in lines)
                    {
                        Console.WriteLine(i + "# " + item);
                    }
                }
                    );

                #region lets do two way binding here.



                // fsprite -> sprite
                fsprite.context_onmessage += xml =>
                {
                    // script: error JSC1000: No implementation found for this native method, please implement [static System.Linq.Enumerable.Except(System.Collections.Generic.IEnumerable`1[[FlashHeatZeekerWithStarlingT04.ApplicationSprite, FlashHeatZeekerWithStarlingT04.Application, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.Collections.Generic.IEnumerable`1[[FlashHeatZeekerWithStarlingT04.ApplicationSprite, FlashHeatZeekerWithStarlingT04.Application, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]])]

                    sprites.WithEach(
                        x =>
                    {
                        // prevent echo
                        if (x == fsprite)
                        {
                            return;
                        }

                        x.game_postMessage(xml);
                    }
                        );
                };

                #endregion
            };


            sprites.Add(sprite);

            #region game_InitializeFrameDiagnostics
            sprite.game_InitializeFrameDiagnostics(
                __FrameDiagnostics =>
            {
                Console.WriteLine("new FrameDiagnostics");

                var x = new FrameDiagnostics();

                x.Show();

                Console.WriteLine("new FrameDiagnostics Show, can you see it?");


                Native.window.onresize +=
                    delegate
                {
                    x.Left = Native.window.Width - x.Width;
                    x.Top  = Native.window.Height - x.Height;
                };


                x.Initialize(__FrameDiagnostics);

                // Error	8	'Abstractatech.ConsoleFormPackage.Library.ConsoleForm' does not contain a definition for 'PopupInsteadOfClosing' and no extension method 'PopupInsteadOfClosing' accepting a first argument of type 'Abstractatech.ConsoleFormPackage.Library.ConsoleForm' could be found (are you missing a using directive or an assembly reference?)	X:\jsc.svn\examples\actionscript\svg\FlashHeatZeeker\FlashHeatZeekerWithStarlingT04\Application.cs	85	17	FlashHeatZeekerWithStarlingT04
                // wtf?
                x.PopupInsteadOfClosing();
                x.Opacity = 0.7;

                // can we pop it up?


                x.JoinMultiplayer.Click +=
                    delegate
                {
                    var f = new Form();
                    // make it small
                    f.Height = 200;

                    var fsprite = new ApplicationSprite();
                    fsprite.src_fixup();
                    fsprite.wmode();


                    var fspriteelement = fsprite.AttachSpriteTo(
                        f.GetHTMLTargetContainer()
                        );

                    #region ClientSizeChanged / PopupInsteadOfClosing has a bug
                    f.ClientSizeChanged +=
                        delegate
                    {
                        var cs = f.ClientSize;

                        fspriteelement.style.SetSize(cs.Width,
                                                     cs.Height
                                                     );
                    };
                    #endregion

                    f.Show();
                    //f.PopupInsteadOfClosing();

                    // do events break if popup mode is changed?
                    fsprite.fps +=
                        (fps, nid) =>
                    {
                        new { fps, nid }.ToString().ToTitle(f);
                    };



                    sprites.Add(fsprite);
                    // what if we have more of these?
                };
            }
                );
            #endregion
        }