This would be particularly nice to see fixed so you can use it on an iPad -
otherwise
simile actually looks very nice on the iPad. I was intending to use Simile
for an
internal project but it not working on iPads is minor dealbreaker.
Zooming a lot still has things look very sharp because the text gets
antialiased at
whatever size.
It would be really handy to be able to show the timeline on the ipad/iphone
and scroll back and forth.
I''m working with healthcare professionals and being able to use the iPad
would be a big plus for Exhibit.
This indeed would be great, also for Android. Could you briefly point the
specific changes needed or to some documentation, so we can also try to
help adding this feature ?
I also would like to see this feature. The Timeline widget lends is based
upon scrolling. It would be amazing to have gestures and be able to
utilize this on touch devices!
I just tried scrolling timeline example with my iPhone 4 and it didn't work
either. It would be very nice if I can control this from iOS devices!
any estimate on this?
You can add this to the timeline-bundle.js to enable ios dragging. I have
only done very rudimentary testing of this code.
SimileAjax.DOM.registerEventWithObject(this._div,"touchmove",this,"_onTouchMove");
Timeline._Band.prototype._onTouchMove=function(D,A,E){
if(A.touches.length == 1){
A.preventDefault();
var touch = A.changedTouches[0];
var C=touch.clientX-this._dragX;
var B=touch.clientY-this._dragY;
this._dragX=touch.clientX;
this._dragY=touch.clientY;
this._moveEther(this._timeline.isHorizontal()?C:B);
this._positionHighlight();
}
};
the above does start the drag but if you drag on teh right of the timeline
for about an inch and them move tot he left side and try to drag it again
it jumps back to its original position.
I wonder if it need a onTouchEnd ... i tried (mirroring the onMouseUp with
no luck.
SimileAjax.DOM.registerEventWithObject(this._div,"touchend",this,"_onTouchEnd");
Timeline._Band.prototype._onTouchEnd=function(){this._dragging=false;
this._keyboardInput.focus();
};
Has anyone figured this out??
So here is some code to get a bit closer 95% there:
(Still doesnt work on the lower band, and if you try to drag there it
breaks the top dragging)
SimileAjax.DOM.registerEventWithObject(this._div,"touchmove",this,"_onTouchMove");
SimileAjax.DOM.registerEventWithObject(this._div,"touchend",this,"_onTouchEnd");
Timeline._Band.prototype._onTouchMove=function(D,A,E){
if(A.touches.length == 1){
A.preventDefault();
var touch = A.changedTouches[0];
var C=touch.clientX-this._dragX;
var B=touch.clientY-this._dragY;
this._dragX=touch.clientX;
this._dragY=touch.clientY;
this._moveEther(this._timeline.isHorizontal()?C:B);
this._positionHighlight();
this._changing=true;
this._fireOnScroll();
this._setSyncWithBandDate();
}
};
Timeline._Band.prototype._onTouchEnd=function(){
this._changing=false;
};
This is a big issue for us. We're working on building educational content
for the iPad and having Timeline functionality would be key! Thanks!!
any update ?
i think i got it working...donno about that double band problem..i tested
it on a single band using the local example at
http://code.google.com/p/simile-widgets/downloads/detail?name=timeline_local_example_1.0.zip&can=2&q=
i added a touchstart listner and replicated the mousedown method for it,
here is the code, to be added to timeline-bundle.js(dont forget to point to
this file by setting bundle=true and pointing to a local url rather that
the online MIT one, your html file where you include the timeline-api.js
file should look something like:
<script src="PATH_TO_FILE_ON_YOUR_MACHINE/timeline-api.js?bundle=true"
type="text/javascript"></script>
):
SimileAjax.DOM.registerEventWithObject(this._div,"touchstart",this,"_onTouchStart");
SimileAjax.DOM.registerEventWithObject(this._div,"touchmove",this,"_onTouchMove");
Timeline._Band.prototype._onTouchStart=function(D,A,E)
{
if(A.touches.length == 1)
{
var touch = A.changedTouches[0];
this._dragX=touch.clientX;
this._dragY=touch.clientY;
}
}
Timeline._Band.prototype._onTouchMove=function(D,A,E)
{
if(A.touches.length == 1)
{
A.preventDefault();
var touch = A.changedTouches[0];
var C=touch.clientX-this._dragX;
var B=touch.clientY-this._dragY;
this._dragX=touch.clientX;
this._dragY=touch.clientY;
this._moveEther(this._timeline.isHorizontal()?C:B);
this._positionHighlight();
this._fireOnScroll();
this._setSyncWithBandDate();
}
};
It runs the code above? I need to run the linetime in ipad and iphone and
doesnt work? please help, any suggestion, any update?
here is the modified local_example:
http://lcc.gatech.edu/~kagarwal9/local_example/
try opening it on an iPad/iPhone and scroll
The code is attached, which follows the above steps to enable scroll on iOS
devices.
The two files to see are:
1. index.html which is at the root and should have the following line:
<script src="PATH_TO_FILE_ON_YOUR_MACHINE/timeline-api.js?bundle=true"
type="text/javascript"></script>
2.timeline-bundle.js, which is at \local_example\timeline\webapp\api which
should have the code, you can just use the file in the attached file and
replace your timeline-bundle.js with it:
SimileAjax.DOM.registerEventWithObject(this._div,"touchstart",this,"_onTouchStart");
SimileAjax.DOM.registerEventWithObject(this._div,"touchmove",this,"_onTouchMove");
Timeline._Band.prototype._onTouchStart=function(D,A,E)
{
if(A.touches.length == 1)
{
var touch = A.changedTouches[0];
this._dragX=touch.clientX;
this._dragY=touch.clientY;
}
}
Timeline._Band.prototype._onTouchMove=function(D,A,E)
{
if(A.touches.length == 1)
{
A.preventDefault();
var touch = A.changedTouches[0];
var C=touch.clientX-this._dragX;
var B=touch.clientY-this._dragY;
this._dragX=touch.clientX;
this._dragY=touch.clientY;
this._moveEther(this._timeline.isHorizontal()?C:B);
this._positionHighlight();
this._fireOnScroll();
this._setSyncWithBandDate();
}
};
Attachments:
local_example.zip 548 KB
I just tried the above code and it works perfectly. Thanks!
Thanks for your help, now works great
also, you might notice the keyboard coming in when you tap on a timeline
event, to stop that from happening just find the following line in
timeline-bundle.js and comment it:
BEFORE: this._keyboardInput.focus();
AFTER: //this._keyboardInput.focus();
i have fixed the above example url with this.
The above fix (commenting out keyboard focus) works as well. Thanks!
Has someone a fix for Timeplot, too?
did anyone find this problem.
when I use iphone and touch the circle spotm it does not come up the bubble
but ask you to input text with keyboard come up!