In that case I would destroy the video element at the start of layout, and create it whenever you need it. Which I do with all elements for that simple reason that you dont have things in the game that are not used, and to remove rogue objects that can all of sudden screw things up if you are not careful.
So when the player trigger the TV and start playing the video you create the video object where it needs to be:
Create video
Video.set position = <X>, <Y>
Video.source = "Video1"
Video.Play
Seen_video = 1
Video.hasEnded
Video.Destroy
Subevent in video has ended:
If Seen_video = 1
Actions
Set Seen_video = 0 Then it will not trigger again
Go_to_map 2
Another subevent in video has ended:
If Seen_video = 2
Actions
Set Seen_video = 0 Then it will not trigger again
Go_to_map 3
[quote:2psyd3x0]This works fine in the first group of code in which it is used (it does detect the when the video ends), but then later, despite having
set the video to a new source file, trying to read the Has ended property still seems to results in it returning a "True".
You can check this really easy, if you in start of layout start video 1 then you make a video has ended and in here you tell it to play another video or the same video doesn't matter. And if it keeps playing you know that it works as it should. You ofc just have to make sure that your videos are not set to loop, which they shouldn't by default.
[quote:2psyd3x0]Basically, why isn't this property reset to False when a new video file is selected for a given video object?
Because its not a property that can be set, it is a trigger. It would be like wanting to set "On created" to true or false, its not how it works, it triggers every time a video has ended, and also why I think it was meant to have that little green arrow. It doesn't care which video file is selected, it triggers whenever that Video element is done playing a video.