Article View: pl.comp.os.advocacy
Article #481862Re: ta niebywała intuicyjność interfejsów...
From: Michał Gancarski
Date: Mon, 07 Mar 2011 15:12
Date: Mon, 07 Mar 2011 15:12
132 lines
6189 bytes
6189 bytes
On 07 Mar 2011 14:48:07 GMT, Andrzej Rosa wrote: > On 2011-03-07, Wojciech Bancer <proteus@post.pl> wrote: >> On 2011-03-07, Andrzej Rosa <bakters@yahoo.com> wrote: >> >> [...] >> >>> Dotknąłeś pędzel w paincie i podnosisz palec. Jaki stan i w ogóle stan >>> czego masz w tej sytuacji? >> >> Kliknąłeś przyciskiem pędzel w paincie i puściłeś. Czym to się różni? > > Kursor zachowuje stan. Żeby użyć pędzla, muszę go przesunąć na rysunek. > W przypadku interfejsu dotykowego niczego nie przesuwam, więc gubię > stan. > >>> Użytkownik _z kontekstu_ oczekuje, że jak dotknie palcem obszaru na >>> rysunku to będzie malował dotkniętym _wcześniej_ pędzlem. >> >> No to aplikacja na podstawie wybranego wcześniej narzędzie w momencie >> (roboczo nazwijmy) ontouch na aktywnym polu (które obsługuje), będzie >> wykonywała akcję przypisaną do wybranego narzędzia. >> >> W czym problem? > > Nie rozumiem. Na przykładzie. Dotknąłem pędzla, aplikacja zapamiętała > to dotknięcie, dotykam rysunku i rysuję. Wszystko pięknie. Ale gdy > dotykam poza rysunkiem a aplikacja nadal rysuje jest wtopa. > > I dalej w tym samym stylu. Załóżmy aplikację pełnoekranową, żeby nie > było komplikacji. Dotknąłem pędzla, aplikacja zapamiętała że ma być > pędzel, po czym dotykam menu. Aplikacja powinna dać mi się przeklikać > przez menu a mimo to nadal pamiętać, że wyimaginowany kursor ma > przylepiony do niego pędzel. Nie powinna zapomnieć wybranego narzędzia > zanim użytkownik z niego osobiście nie zrezygnuje. To dokładnie tak jak z myszką. Sam sobie musisz zapamiętać, które narzędzie zostało wybrane. >>> Nie oczekuje, że jak dotknie obszaru poza rysunkiem to też będzie >>> malował. >> >> No i jaki w tym problem? >> Programowanie zdarzeniowe nie polega na robieniu pętli wyjątków tylko >> na obsłudze konkretnego zdarzenia w konkretnych warunkach. W pozostałych >> przypadkach obsługa jest domyślna, przez system. > > Problem w tym, że w przypadku interfejsu dotykowego warunki nie są > konkretne. Decyduje kontekst, który nie jest konkretem, bo istnieje > głównie w umyśle użytkownika. > > Na przykład. Użytkownik klika w menu, system otwiera menu, użytkownik > klnie. Dlaczego? Bo on przecież "dotknął i przeciągnął" a nie "dotknął > menu". "Komputery są gupie!" Skoro dotknął i przeciągnął, to nie "po prostu dotknął". Proste. To tak jakbyś narzekał, że nie wiesz co zrobić z dwuklikiem na elemencie menu. Bo przecież użytkownik nie kliknknął, tylko dwukliknął i klnie. Olaboga, musisz o tym pomyśleć. >>> Programista musi _przewidzieć_ oczekiwania użytkownika i je odgadnąć. >> >> Po co? Programista ma obsłużyć akcje, które potrzebuje. >> Nic mniej, nic więcej. > > No i obsłużył proste dotknięcie w sytuacji gdy powinien się domyślić, że > powinien obsłużyć gest. Albo obsłuży dwuklik w sytuacji, gdy powinien się domyślić, że to powinien być zwykły klik. Albo nie klik, tylko przytrzymanie klawisza i przeciągnięcie myszką. Albo może jednocześnie prawy i lewy przycisk? Kółeczko? Trzeci przycisk? Przeciągnięcie z trzecim przyciskiem? Przeciągnięcie z prawym? > Albo jak w poprzednim wypadku, obsłużył > malowanie w sytuacji gdy powinien obsłużyć proste dotknięcie. Malowałbyś po menu? Współczuję. >>> Nie ma kursora o jednoznacznie określonym stanie. >> >> Ale przecież w normalnych aplikacjach to Ci nie jest potrzebne. Po xuj >> Ci pozycja kursora myszki jak nic nie wciskasz? > > Jednoznacznie określa kontekst. Nie. > Jak kursor jest nad rysunkiem, > pracujemy w paincie. Jak bazgrasz palcem po obszarze malowania, to malujesz. > Jak kursor jest poza rysunkiem, obsługujemy zwykłe > kliknięcia. Jak dotykasz poza obszarem malowania, to nie malujesz. Trudne? >Jak kursor jest poza aplikacją, obsługujemy generyczne > zachowanie myszy w systemie. Nie ma czegoś takiego. Zawsze jest jakaś "aplikacja", czy to shell czy program użytkowy. Kursor jest zawsze nad jakąś aplikacją. Podobnie - dotyka się zawsze na obszarze jakiejś aplikacji. > W przypadku interfejsu dotykowego kontekst trzeba zgadnąć. To dokładnie tak samo jak z myszą. >> Przecież w programach >> tego nie śledzisz, bo Ci nie jest to potrzebne. Reagujesz na onclick, >> albo na onbuttondown albo onbuttonup i dopiero wtedy odczytujesz >> współrzędne (bo wtedy zazwyczaj Ci potrzebne). Na gładzikach masz to >> samo, tylko musisz prowadzić kursor, bo gładzik sam w sobie nie przekazuje >> prawidłowo pozycji XY względem ekranu. > > Jak kursor w ogóle jest, sytuacja się upraszcza. Nie. -- Michał Gancarski
Technical Details
Message-ID:
<169uowejwavm3$.mdcsqyj5rroq.dlg@40tude.net>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<90a44e0b-e088-46ee-8b44-69ea10d21611@u3g2000vbe.googlegroups.com> <iklomn$r0e$1@news.onet.pl> <ikm2c2$hjv$1@node2.news.atman.pl> <4d6ea047$0$2452$65785112@news.neostrada.pl> <ikqirp$9j0$1@inews.gazeta.pl> <4d7120e0$0$2491$65785112@news.neostrada.pl> <wzs7ints4fdh.gy2djku3mouc$.dlg@40tude.net> <4d73d38d$0$2439$65785112@news.neostrada.pl> <dk59fm1lho5c$.mmsu0q21f7sl.dlg@40tude.net> <4d74cf56$0$2486$65785112@news.neostrada.pl> <slrnin9lqe.2mi3.proteus@pl-test.org> <4d74f027$0$2505$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: Michał Gancarski <michal@gancarski.com> Newsgroups: pl.comp.os.advocacy Subject: Re: ta niebywała intuicyjność interfejsów... Date: Mon, 7 Mar 2011 16:12:05 +0100 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 132 Message-ID: <169uowejwavm3$.mdcsqyj5rroq.dlg@40tude.net> References: <90a44e0b-e088-46ee-8b44-69ea10d21611@u3g2000vbe.googlegroups.com> <iklomn$r0e$1@news.onet.pl> <ikm2c2$hjv$1@node2.news.atman.pl> <4d6ea047$0$2452$65785112@news.neostrada.pl> <ikqirp$9j0$1@inews.gazeta.pl> <4d7120e0$0$2491$65785112@news.neostrada.pl> <wzs7ints4fdh.gy2djku3mouc$.dlg@40tude.net> <4d73d38d$0$2439$65785112@news.neostrada.pl> <dk59fm1lho5c$.mmsu0q21f7sl.dlg@40tude.net> <4d74cf56$0$2486$65785112@news.neostrada.pl> <slrnin9lqe.2mi3.proteus@pl-test.org> <4d74f027$0$2505$65785112@news.neostrada.pl> NNTP-Posting-Host: 193-239-36-253.ksi-system.net Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1299510727 12407 193.239.36.253 (7 Mar 2011 15:12:07 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Mon, 7 Mar 2011 15:12:07 +0000 (UTC) X-User: wssbck User-Agent: 40tude_Dialog/2.0.15.1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit