9 Replies Latest reply on Feb 28, 2017 3:20 PM by Colin Holgate

    Simple Interactive Kiosk

    mnarlock Level 1

      Hello,

       

      I'm doing a simple proof of concept and I require some assistance. Essentially I'd like to create an end product that would be 3840x1080 (i.e. it would spread across two HD screens). On the left would be a series of sliders and/or buttons. When the slider is positioned to a certain point or when a button is pushed, an mp4 video would play on the other side. I *think* Adobe Animate can do this but I simply am at a loss as to what to do.

       

      Could anyone kindly direct me to a tutorial or provide some guidance? Or, if I'm barking up the wrong tree thinking I can use Adobe Animate CC for this, could you perhaps kindly point me in the direction of a product that might be able to do what I'm asking?

       

      Much thanks!

        • 1. Re: Simple Interactive Kiosk
          kglad Adobe Community Professional & MVP

          you could create one air project that's 3840x1080 and use your os to distribute that across your two screens.  this would be the easiest as long as the two screens are driven by one computer.

           

          or you could create two 1920x1080 air projects that communicate with each other using localconnection if each screen is connected to a different computer.

          • 2. Re: Simple Interactive Kiosk
            mnarlock Level 1

            I'll try air as this will be run via one computer. Is there a trick to getting mp4s to play? I've inserted a movie clip and tied it to my mp4 but when I test I get:

             

            WARNING: This movie uses features that are not supported in the AIR 23.0 for Desktop player

            Symbol=rain, layer=Layer 1, frame=1:WARNING: H.264 video will not be published.

            • 3. Re: Simple Interactive Kiosk
              kglad Adobe Community Professional & MVP

              the easiest way to play an mp4, is to use an flvplayback component (from the components panel).

              • 4. Re: Simple Interactive Kiosk
                mnarlock Level 1

                Things are looking up! Thanks for your help. Do you happen to know if there's a way to use a slider that will trigger playback of a video when it reaches a certain point?

                • 5. Re: Simple Interactive Kiosk
                  kglad Adobe Community Professional & MVP

                  yes there is.

                   

                  more than that i can't say because i don't know what you have in mind.  ie, what's the slider do?

                  • 6. Re: Simple Interactive Kiosk
                    mnarlock Level 1

                    kglad,

                     

                    I figured out my slider issue. However, as it turns out I'm going to have to create two win projectors and pass information between them using localconnection as opposed to doing one giant projector spread across two screens.

                     

                    So far I have no joy. I'm trying to have one projector with the buttons on it and the other with the videos, which seems to make logical sense. However, I am not quite certain how to pass mouse clicks between the two projectors so that the video can start on the second projector.

                     

                    On the sending projector, I have:

                    var send_lc:LocalConnection = new LocalConnection();

                    rain_button.addEventListener(MouseEvent.CLICK, fl_ClickToPlayVideo_rain);

                    snow_button.addEventListener(MouseEvent.CLICK, fl_ClickToPlayVideo_snow);

                    function fl_ClickToPlayVideo_rain(event:MouseEvent):void

                    {

                    }

                    function fl_ClickToPlayVideo_snow(event:MouseEvent):void

                    {

                    }

                    send_lc.send("_connection1","fl_ClickToPlayVideo_rain",MouseEvent.CLICK, fl_ClickToPlayVideo_rain);

                    send_lc.send("_connection1","fl_ClickToPlayVideo_snow",MouseEvent.CLICK, fl_ClickToPlayVideo_snow);

                     

                    And on the receiving projector:

                     

                    var receive_lc:LocalConnection = new LocalConnection();

                    receive_lc.allowDomain("*");

                    receive_lc.connect("_connection1");

                    snow_playback.visible = false;

                    rain_playback.visible = false;

                    function fl_ClickToPlayVideo_rain(event:MouseEvent):void

                    {

                      // Replace video_instance_name with the instance name of the video component

                      rain_playback.visible = true;

                      snow_playback.visible = false;

                      snow_playback.pause();

                      snow_playback.seek(0);

                      rain_playback.play();

                    }

                    function fl_ClickToPlayVideo_snow(event:MouseEvent):void

                    {

                      // Replace video_instance_name with the instance name of the video component

                      rain_playback.visible = false;

                      snow_playback.visible = true;

                      rain_playback.pause();

                      rain_playback.seek(0);

                      snow_playback.play();

                    }

                    • 7. Re: Simple Interactive Kiosk
                      Colin Holgate MVP & Adobe Community Professional

                      You may be overcomplicating it, unless you're expecting users to be able to operate buttons on both screens. And even if you are you can do it in an easier way.

                       

                      Don't send to a mouseevent, send to a function, and if you have to have a button on the other screen that also works, have that mouseevent call the same function. Like:

                       

                      send_lc.send("_connection1","playrain");

                       

                      and in the other screen:

                       

                      function fl_ClickToPlayVideo_rain(event:MouseEvent):void

                      {

                      playrain();

                      }

                       

                      function playrain(){

                        // Replace video_instance_name with the instance name of the video component

                        rain_playback.visible = true;

                        snow_playback.visible = false;

                        snow_playback.pause();

                        snow_playback.seek(0);

                        rain_playback.play();

                      }

                      • 8. Re: Simple Interactive Kiosk
                        mnarlock Level 1

                        The buttons are only on one screen. Right now, for testing, there are two. How would I send using two different buttons is I guess where I'm confused, for starters. I presume I have to put listeners for both buttons on the "sending" screen? But how does the other screen tell them apart?

                        • 9. Re: Simple Interactive Kiosk
                          Colin Holgate MVP & Adobe Community Professional

                          You would send a playsnow message, and have a playsnow function that would play the right video.

                           

                          Having different videos that are visible or invisible seems wrong too. There should only be one FLVPlayback component, and all video files would be external. You just change which video it is playing.

                           

                          I haven't used localConnection for a while, but if you are able to send a parameter your video screen could have one function like this:

                           

                          function playThisVideo(vidname:String){

                          vid_playback.source = "videos/"+vidname+".mp4";

                          vid_playback.play()

                          }

                           

                          or something on those lines.