Witam,
Mam jak zwykle "tyci" problemik. Używam biblioteki Excanvas do obsługi Canvasa pod Explorerem. Wszystko działa pięknie, dopóki nie ukryję Canvasa lub Diva, w którym się znajduje (display: none). Jeśli przed odsłonięciem coś do środka narysuję, nie dość, że nie jest to widoczne po odsłonięciu, to jeszcze Canvas staje się "nieedytowalny". Jeśli odsłonię przed uruchomieniem funkcji rysującej, wszystko jest OK. Porobiłem sobie consol-logi do Firebug'a, kolejność odpalania funkcji i inicjalizacji obiektów wygląda OK... Zdebugowałem już chyba wszystko co się dało zdebugować a problem pozostaje... Czy ktoś może podziałał coś z sukcesem w tym kierunku?
Pozdrawiam
Problem rozwiązany!
Wynika on najprawdopodobniej z niemożności narysowania czegokolwiek (ActiveX+DX) w polu o wielkości 0x0 pikseli. Należy zmienić linijki 307 oraz 308 w funkcji CanvasRenderingContext2D_:
el.style.width = surfaceElement.clientWidth + 'px';
el.style.height = surfaceElement.clientHeight + 'px';
na oprawione odpowiednimi warunkami:
if(surfaceElement.clientWidth > 0) {
el.style.width = surfaceElement.clientWidth + 'px';
el.style.height = surfaceElement.clientHeight + 'px';
} else if(surfaceElement.style.width != "0px") {
el.style.width = surfaceElement.style.width;
el.style.height = surfaceElement.style.height;
} else {
el.style.width = "100px";
el.style.height = "100px";
}
Pozdrawiam