Announcement

Collapse
No announcement yet.

Flash movie rendered in surface doesnt intercept mouse Clicks

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Flash movie rendered in surface doesnt intercept mouse Clicks

    Hello After trying a lot of workarounds i cant overcome this issue thats been getting me crazy for a long time

    When i render my flash movie in a surface(BSP,3D Model etc) events like rollOver and rollOut work pretty well but instead oter events like left mouse click,right mouse click Dont work at all

    i alredy set my movie to capture input using bCaptureInput,bIgnoreMouseInput to false etc

    I noticed someting while trying if i set bCaptureInput to true it doesnt capture any input unless i manually add the keys i want to be controlled by the flash movie using AddCaptureKey

    i pretty much tried everything but nothing seems to work as soon i use the left mouse button in the flash movie wich is in the surface it seems to simply ignore it like if i never used the button

    i really would love if anyone could help me as i tried every thing that came to my mind but nothing seems to work , Also if i test the movie in fullscreen not being rendered in a surface mouse clicks work but if its rendered in a surface they stop working

    Code:
    class GFxWatch extends GFxMoviePlayer;
    var GFxClikWidget om;
    
    function Init(optional LocalPlayer player)
    {	
    	super.Init(player);
        Start();
    	Advance(0);
    }
    
    
    
    event bool WidgetInitialized(name WidgetName, name WidgetPath, GFxObject Widget)
    {    
    
        switch(WidgetName)
        {                 
    	case ('om'): // this assumes your Scrolling List has an instance name of 'sl' in Flash.
    	    om = GFxClikWidget(Widget);
    		om.AddEventListener('CLIK_press',OnClickHandler);
    	    break;
    		
    		
    		
    		
            default:
    		
                break;
        }
        return true;
    }
    
    function UpdateWatch()
    {
    }
    
    function OnClickHandler(GFxClikWidget.EventData ev)
    {
    `Log("BUTTON PRESSED");
    
    }
    
    exec function LeftBtn_Pressed()
    {
    
    `Log("CLICK CALLED CLICK CALLED CLICK CALLEEEE");
    }
    
    defaultproperties
    {
    	bCaptureInput=true
    	bAllowInput = true
    	bAllowFocus = true
    	bIgnoreMouseInput = false
    	bDisplayWithHUDOff = true
    	TimingMode = TM_Real
    
        MovieInfo = SwfMovie'SURVIVORFlash.WatchMenu'
    			    WidgetBindings.Add((WidgetName="om",WidgetClass=class'GFxClikWidget'))
        RenderTexture = TextureRenderTarget2D'SV_Watch.Material.Watch_RenderTarget'
    
    }

    #2
    All you need is to open a dummy SWF file,( I used a 1x1 empty file) on the HUD normally(not a RenderTexture) and it will let you interact with the RenderTexture SWFs.

    Comment


      #3
      I alredy tried doing this but it doesnt work

      tried emailing matt doyle about this and he confirms that method used to work in older builds but its broken now

      I noticed that to get my mouse moving in the flash movie i need to open an dummy SWF first...else the mouse wont move at all

      Comment


        #4
        This appears to be broken. I've informed the team, and we'll see what we can do to get it fixed in a future build, but I can't offer any resolution as yet. The hack mentioned above seems to help some in the meantime.

        Comment


          #5
          thanks matt, any news if this works in the recent new build?

          Comment


            #6
            No unfortunately. I was away in Shanghai on Autodesk Business for a week. I will follow up on this though in hopes of finding a resolution; however, please understand that I don't have much pull on how soon this will be fixed.

            Comment


              #7
              Hi guys. I'm facing the same problem here, trying to render a user interface to a static mesh. The rendering part works with no problems, however interaction doesn't.
              If I comment out the part where I set it to render to a texture, everything works perfectly.

              I was thinking about a tricky fix... Is it possible to render an invisible, focused and accepting input straight to the screen (the one that works already), and have a copy rendered on the texture? And if yes, how should I go about that? I'm thinking that this way it could give the illusion that the player is actually interacting straight with the rendered texture screen.

              Hope I was clear enough.

              Thanks.

              Comment


                #8
                bump......................

                Comment


                  #9
                  once again..bump

                  Comment


                    #10
                    and...again bump i REALLY need this feature to work else its kidna useless to mark it as working and when it comes to the actual use it doesnt ...

                    Comment


                      #11
                      The engineering team knows about it, and is investigating it. That's all I can give you at the moment.

                      Comment


                        #12
                        Any news about this? its been almost an year alredy and trying in the latest UDK Builds gives exactly the same result... and as you can see im not the only one with this issue

                        i do found out the following

                        I can get Input to work IF i add it individually using AddCaptureKey

                        but here comes the weird part.. The mouse input seems to be a whole different thing.. If i move my mouse above an button and sayd button has an rollOver event listener, the event works but if i try to PRESS or CLICK it ( using the click or press event) the button never gets clicked or the event fires up even tough i added the leftmousebutton using AddCaptureKey

                        So why the mouse roll over works but not the press itself ?

                        Its a bit annoying i havent been able to properly progress on my UI just becouse of this...

                        Comment


                          #13
                          I also need this feature please...

                          Comment


                            #14
                            Best , it's just go in your hud class

                            Instance the menu movie it is and then works... though you will have to disable somehow your whole game input exec functions... like with a simple bool , bIsUsingKeys... or yep...

                            As you would isntance your hud movie. hope it helps as for alternative solution : ) .


                            super.PostBeginPlay();

                            //HudMovie
                            HudMovie=new class'GFxArenaHudMovie';
                            HudMovie.Init(class'Engine'.static.GetEngine().Gam ePlayers[HudMovie.LocalPlayerOwnerIndex]);

                            ScoreBoardMovie=new class'GFxArenaScoreBox';
                            ScoreBoardMovie.Init(class'Engine'.static.GetEngin e().GamePlayers[ScoreBoardMovie.LocalPlayerOwnerIndex]);

                            MainMenuMovie=new class'GFxArenaMainMenu';
                            MainMenuMovie.Init(class'Engine'.static.GetEngine( ).GamePlayers[MainMenuMovie.LocalPlayerOwnerIndex]);

                            Comment


                              #15
                              Well thats the same method im using and i cant get the mouse clicks to work still

                              I have the HUD Wrapper class that i make it extend from UTHUD and my " hud " movie that just extends GFxMoviePlayer, the movie with the mouse input etc etc IS initialized from the HUD Wrapper....

                              Comment

                              Working...
                              X