4 Replies Latest reply on Aug 14, 2006 10:11 AM by Chunick

    MIAWs on-the-fly

    Radion Barfe
      I'm writing a multiple-monitor screensaver that will show different images in each screen at the same time and was thinking of using MIAWs. As I can't know how many monitors will be on each system it's used on, I can't write a dedicated movie for each MIAW.

      So is there any way to write the MIAWs & their contents on the fly, or a way to launch a single movie into multiple MIAWs? Or is there a better way of doing it without using MIAWs?
        • 1. Re: MIAWs on-the-fly
          Level 7
          MIAW's can always be loaded and opened anytime during the life of a movie or
          projector. What I would suggest is to spawn a number of MIAW's that equals
          the count of the deskTopRectList. That list gives the rect of each monitor
          on a system. By doing this you're letting the system think for itself and
          let you know how many monitors there are and how many MIAW's you need.

          Since this list gives you the rect of each monitor you can asign each of
          those rects to each MIAW respectively. It's actually pretty straight
          forward but if you need more help just yell.

          By the way, go into your message window and type "put the desktopRectList"
          (without the quotes) and hit a CR. If you have one monitor you'll see
          something like this as the result

          [rect (0, 0, 1024, 768)]

          assuming your resolution is set to 1024 x 768. If you have more than one
          monitor you'll see it's position as a second item in the list separated by a
          comma.

          --
          Craig Wollman
          Word of Mouth Productions

          phone 212 928 9581
          fax 212 928 9582
          159-00 Riverside Drive West #5H-70
          NY, NY 10032
          www.wordofmouthpros.com


          "Radion Barfe" <webforumsuser@macromedia.com> wrote in message
          news:eb6vs4$53p$1@forums.macromedia.com...
          > I'm writing a multiple-monitor screensaver that will show different images
          > in
          > each screen at the same time and was thinking of using MIAWs. As I can't
          > know
          > how many monitors will be on each system it's used on, I can't write a
          > dedicated movie for each MIAW.
          >
          > So is there any way to write the MIAWs & their contents on the fly, or a
          > way
          > to launch a single movie into multiple MIAWs? Or is there a better way of
          > doing
          > it without using MIAWs?
          >


          • 2. Re: MIAWs on-the-fly
            Radion Barfe Level 1
            By spawning, do you mean I should have a single 'master' version of the MIAW and make a duplicate copy of it (written to the hard drive) for each monitor and, when the program is closed, delete the copies?

            This is the way I'm approaching it at the moment but it seems a bit clumsy; I'd rather not be writing anything to the HD. Is there any way of creating MIAWs without first writing their content to disk?
            • 3. Re: MIAWs on-the-fly
              Level 7
              Ok, sorry, it's a bit clearer now. So forget the miaw since yes you would
              have to have an inventory of .dir's available for whatever you think the
              maximum number of monitors is.

              The other option is to create one movie and set the stage size equal to the
              bounding rectangle of all rectangles in the desktopRectList. Distribute
              your content throughout the stage based on the individual rect's in that
              list.
              --
              Craig Wollman
              Word of Mouth Productions

              phone 212 928 9581
              fax 212 928 9582
              159-00 Riverside Drive West #5H-70
              NY, NY 10032
              www.wordofmouthpros.com


              "Radion Barfe" <webforumsuser@macromedia.com> wrote in message
              news:ebq4oc$p8c$1@forums.macromedia.com...
              > By spawning, do you mean I should have a single 'master' version of the
              > MIAW
              > and make a duplicate copy of it (written to the hard drive) for each
              > monitor
              > and, when the program is closed, delete the copies?
              >
              > This is the way I'm approaching it at the moment but it seems a bit
              > clumsy;
              > I'd rather not be writing anything to the HD. Is there any way of creating
              > MIAWs without first writing their content to disk?
              >


              • 4. MIAWs on-the-fly
                Chunick Level 3
                quote:

                Originally posted by: Newsgroup User
                Ok, sorry, it's a bit clearer now. So forget the miaw since yes you would
                have to have an inventory of .dir's available for whatever you think the
                maximum number of monitors is.

                You don't need to make 1 .dir for each monitor... all you need to do to spawn multiple MIAWs is have a single, master .dir, set the file to read-only (right-click on the file itself in Windows select 'Properties' and set it's Attribute at the bottom of the 'General' tab). Then, when publishing, make sure the option, 'Single instance only' is not selected under the 'Projector' tab of the Publish Options (MX2004) or for older versions the option can be explicitly set in an ini file (which should sit in the same folder as your program and has the same file name with the .ini extension) but may be set to 0 by default (you'll have to test):

                projectorName.ini:

                [settings]
                singleInstance=0

                Lastly, when creating your windows you need to create the window object, give it a name and then set it's file, something like this (MX2004):

                newWindow = window().new(windowNameHere)
                newWindow.fileName = "ActualFileNameHere" -- ie. the name of the actual .dir without the extension added
                newWindow.open()