@abstract I was trying to think of a resource that would exercise CreateJS 2.0 as much as possible, that we could use to test it.
A sequential demo reel would be a great way to test everything in one shot. Does anything like that exist?
@abstract I was trying to think of a resource that would exercise CreateJS 2.0 as much as possible, that we could use to test it.
A sequential demo reel would be a great way to test everything in one shot. Does anything like that exist?
The only place I've found in CreateJS and ZIM that calls Touch.isSupported is:
Touch.enable = function(stage, singleTouch, allowDefault) {
if (!stage || !stage.canvas || !Touch.isSupported()) { return false; }
If Pointer Events aren't supported by a user's old browser, perhaps explode in the console:
Touch.isSupported = function() {
var supported = !!window.PointerEvent;
if (!supported) {
console && (console.error || console.log)("Pointer Events are not supported in this browser. Touch functionality will not work.");
}
return supported;
};
How exciting - any luck at the conference?
Hi Dan, I hope so; I'm not going until Thursday though. I'll try drag3 and drag4 at every interactive panel stand I can find.
Hope BETT goes well tomorrow James!
Hello, I got back from BETT last night. I stayed for two days; Wacebo said I could try the test files if I came at the very beginning of the day.
There were 5 board manufacturers there. BENQ, Wacebo, SMART, Promethean and Viewsonic. Wacebo and Viewsonic allowed me to try the test files and an existing game. The other three were keen but said we needed to do it away from the sales floor, (via email).
Summary: Viewsonic & Wacebo - all files worked
I arranged to meet the Viewsonic lead technical lady at the end of the day. She was incredibly helpful. Each time I tested my PV Counters game, Drag3 then Drag4. We tested the files on Playstore OS (no idea?!) then an Android OS. I have video for each.
Viewsonic: VPC-A31-01
Chrome: 144.0.7559.76
OS: PlayStore
Drag3:
Test1: true
2: true
3: true
4:undefined
5:true
6:undefined
7:undefined
8:true
9:undefined
10:false
11:function PointerEvent(){[native code]}
12: true
13:true
14:true
15:false
16:false
Dragging: successful
Test 4
Dragging: successful
ViewSonic:
OS: Android
Chrome:143.0.7499.147
Drag 3
1:true
2:true
3:true
4:undefined
5:true
6;undefined
7:undefined
8:true
9:undefined
10:false
11:function PointerEvent() {[native code]}
12:true
13:true
14:true
15;false
16:false
Dragging: successful
Test 4
Dragging: successful
More to follow I just want to post this before I lose it
Wacebo
OS: Windows
Chrome: 143.0.7499.192
Drag 3
1:true
2:true
3:true
4:undefined
5:true
6:undefined
7:undefined
8:true
9:undefined
10:false
11:function PointerEvent(){[native code]}
12:true
13:true
14:true
15:false
16:false
Dragging: successful
Promethean:
I spoke to the Technical Product Manager and he referred me to someone he felt knew better than him. They were both super helpful. When I explained our issue he said STOP! Don’t change anything! He was emphatic about it. Their hardware Infrared provider had changed their Human Interface event handler. It was within spec but when touch was released rather than reporting the down/touch flag as false with its Touch ID it was sending them to the Microsoft HI separately. Affecting the number of touches and their ID etc. He said three times that he guaranteed that if this was the issue it will be resolved with a software update. I guess we can’t be sure but he was adamant. He was very professional; didn’t look inclined to hyperbole but was animated when he said stop.
They gave me their emails to send the files to test.
My existing file worked on Wacebo and Viewsonics:
I found SMART in a building outside. I thought it was their offices and decided to be brave and walk in. I explained our issue and by luck a chap who knew me from my games back in 2006 came out of a room and that helped a lot. He was saying they had to talk to me which was lovely.
I have emails trend the test files
Thanks, James. Good hard research. It appears then that we are good with these latest two versions.
The drag3 is our current fix based on the Ferudun swap and the Abstract removal of maxTouchPoints (which we could put back if Promethean patches their software). This has the current createjs 1.5. So if you updated to ZIM 019 then it will work on Promethean boards. I think we will leave it as is regardless any patch by Promethean.
The drag4 is the rewrite by Chris which basically assumes pointer events and therefore assumes users have at least:
| Browser | Minimum Version |
|---|---|
| Chrome | 66+ (Apr 2018) |
| Firefox | 60+ (May 2018) |
| Safari | 13+ (Sep 2019) |
| Edge | 79+ Chromium (Jan 2020) |
We have another thread here: CreateJS Modernization? where we discuss modernizing CreateJS in general. Chris's version is in consideration - for details and discussion, see that post.
I did some ZIM promotion. I met one chap who wants to make Maths tools for 'A' level. He was interested I think.
I've got permission to go to my old school this week and test on some boards too.
I'll write to BENQ, Promethean and SMART this week to test at least the Drag3.
Thanks for everything that you're doing Dan, Chris and Ferudun!
Was poking around the CreateJS github repository and the second to last question was on Touch - referencing a pull request that was a fork that had some of our code in it. So just added our code to the latest CreateJS Touch.js code.
As far as I can tell, nothing changes outside of Touch. But if anyone is used to compiling createjs from the github files and can test the result, that might be prudent.
Just found a side effect of our Touch change.
window.addEventListener("mousedown", ()=>{
zog("down")
})
no longer works on the canvas - nor does the mouseup. But mousemove does. It works when pressing off the canvas so probably should be fine for Frame tag mode for instance when there is other html around.
If you change it to "pointerdown" then it does work. And any mousedown events on ZIM objects work.
@Ferudun maybe you can see if you can find out why and perhaps a work around. Not sure if we need one...but maybe if a tag() mode is on the stage... and the html inside the tag mode is expecting mousedown and mouseup.
In the previous scenario, the window.addEventListener("mousedown") listener wasn't working on either iOS or Android. I think using pointerdown makes more sense. The old code also needed to use window.addEventListener("pointerdown").
Interesting - so all along on iOS and Android, the window mousedown did not work on the canvas. Okay... probably good then.
I went into my old school yesterday. They were really helpful. I tested drag3 and one of my games with the old code on numerous boards including BENQ, Vestel, SMARTboard. All of them worked. I have videos of the Chrome version numbers if needed.
Gents, I just read your epic saga. Amazing research and field work. Thank you for putting in the months of effort! I am left with this question: what's the most compatible approach moving forward? Use pointer events only, and if so, is there a list of them?
Thanks @josephd - good to hear from you.
ZIM 019 now uses our CreateJS 1.5. This favors pointer events but still accommodates older devices (pre 2018). So... just use mousedown, pressmove, pressup inside ZIM and it is being fed pointer events (most likely).
We are looking at perhaps going forward with a CreateJS that sheds some older tests, etc. That is over here: CreateJS Modernization?