W3C home > Mailing lists > Public > www-smil@w3.org > January to March 2004

Re: XHTML+SMIL hyperlinking+"eventing"

From: Lloyd Rutledge <Lloyd.Rutledge@cwi.nl>
Date: Fri, 23 Jan 2004 14:36:39 +0100
Message-ID: <40112367.20004@cwi.nl>
To: Steve <s.j.bennett@herts.ac.uk>
Cc: www-smil@w3.org

Perhaps you could use Time Manipulation to have the <a> element (and its 
content) pause when <a> is clicked. My guess is that you give your 
source pausing Time Manipulation element a begin="slide_1_3.click" 
assignment. However, I doubt you can have it automatically start up 
again when the destination window is closed, so you may need an 
"unpause" button. Maybe the Time Manipulation element can have an 
end="unpauseButton.click" assignment, but I am guessing. One potential 
problem is that IE Time Manipulations are not implemented for the media 
content of your <a>. Patrick Schmitz's ludicrum.org site has heaps of 
Time Manipulation examples.

XHTML+SMIL does indeed have no sourcePlaystate attribute. This is 
because it has no SMIL linking (nor SMIL layout) whatsoever, which has 
other consequences for what you are trying to do. Your <a> element 
triggers only HTML linking activity, which is implementation-dependent, 
but typically a scroll activity. Triggering an <a> in XHTML+SMIL has no 
impact on synchonization or any timing, unlike in native SMIL 2.0 
profiles such as the main profile and Basic, in which link activity 
explicitly affects the timing. You need the HTML-defined behavior to 
open a new window, because XHTML+SMIL takes no SMIL constructs for doing 
this (as it takes no SMIL layout whatsoever). But the pause behavior 
needs SMIL constructs, and the fact that the element is <a> has no 
impact on this -- is might as well be <span> in terms of pausing.

An alternative to Time Manipulations (that is more likely to work, and 
perhaps better all around) is that the two presentations are siblings in 
an <excl> with the right defer and pauseDisplay settings that make the 
video source defer to the destination, and defer by pausing. If this 
works, then you get automatic unpausing when the destination ends in 
terms of SMIL timing. But the destination must exist in the same SMIL 
time schedule as the source for synchronization of this (or any) kind. 
Thus you cannot have the destination be a seperate file *such as 
http://some.url.com in your example). This in turn means you cannot have 
it in a separate window. HTML and CSS offer no way for putting 
components of the same HTML presentation (file AND render instanciation) 
in multiple windows (would be a nice addition to future versions of 
CSS?). You could, however, have the destination appear in front of the 
source, or elsewhere in the same window, or even have the source display 
shrink as paused to a small corner and grow back up again when unpaused. 
But all in one window.

Please post to the list if you figure any of this out!

-Lloyd

Steve wrote:

> Does anyone know the answer to this. In an XHTML+SMIL presentation I 
> want to both link to a web page in a new window as well as pause the 
> existing presentation. I’m currently trying something like
>
> <a class="time" alt="" timeAction="visibility" begin="clip1.begin" 
> end="clip1.end"
> style="border:1;background-color:transparent;position:absolute;left:325px;top:148px;width:51px;height:67 
>
> px;z-index:100" id="slide_1_3" href="http://some.url.com" 
> target="outside">
>
> Basically I want a <par> somewhere else to be triggered by a 
> “slide_1_3.click”. However, it seems that the fact of the hyperlinking 
> makes the slide_1_3.click event not work or not get triggered. I know 
> in SMIL2.0 there is the sourcePlaystate value which can stop the 
> existing presentation playing, but I’m not sure if this is implemented 
> in XHTML+SMIL. Does anyone have any ideas?
>
> Steve Bennett
Received on Friday, 23 January 2004 08:39:06 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 5 February 2014 07:15:09 UTC