Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Canvas][excanvas] Problem z googlowską biblioteką Excanvas, Rozwiązany
mathijas
post 3.11.2009, 14:03:43
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 1
Dołączył: 9.10.2008

Ostrzeżenie: (0%)
-----


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

Ten post edytował mathijas 3.11.2009, 14:11:08
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 06:14