728x90
반응형

얼마전에 아래와 같은 화면이 가능할지 요구가 들어왔다.


화면의 로딩이 끝나고 버튼을 누르면 Fullscreen으로 전환된다. 그리고 음식사진이 나오는데, 이 사진을 아래있는 컨트롤바의 조작으로 바꿀수도 있고, 여러 이벤트 처리가 가능한다.
잘 아시다시피, Fullscreen 화면에서는 키보의 이벤트가 ESC만 적용이된다. (운영체제에 따라서 약간은 다름) 그렇기 때문에 제약 상항이 많아진다. 이를 해결하기 위해서 위 사이트처럼 아래 마우스로 조작이 가능한 컨트롤바를 넣어서 해결을 하는 방법을 생각해 보았다.

일단 아래 화면을 보자.


위 화면을 Fullscreen일 경우에만 보여준다고 생각을 하면, 어떨까? 그러니깐 FullScreen 화면과 일반화면에 보여지는 것이 전혀 다르게 하는것이 목적이다. 굳이 이렇게 작업할 필요는 없지만, 사용자 입장에서는 풀화면으로 전환시 다른 화면이 나왔다고 느끼게 하기 위해서 이다.

일반 화면은 아래와 같은 화면으로 한다.


이 화면은 Flex 예제사이트를 참고했다.

일반 부분의 소스를 보면...fullScreenHandler라는 함수를 주목하자. 이부분이 중요하다. 이부분에 Fullscreen 화면과 일반화면의 전환시 동작해야하는 기능들을 넣어주면 된다.
<<FullScreen.mxml>>


그리고 Fullscreen의 경우의 화면 소스
<<FullDisplay.mxml>>

item 이라는 ArrayCollection변수를 생성하여 이곳에 이미지가 있는 주소 데이터를 만들어준다. MenuBar라는 새로만든 컨포넌트의 데이터이기도 하다.

<<MenuBar.mxml>>


MenuBar에서 HorizontalList 컨포넌트안에 들어가는 item을 itemRenderer를 이용하도록 만들었다.
<<CustomItemRenderer.mxml>>


이것들을 이용해서 Fullscreen 모드에서만 동작하도록 만들어보았다. (좀더 응용을 해보았다.)


소스를 보면 Fullscreen 모드일때 숨겨두었던 컴포넌트를 보여주고, 일반화면일때 보이던 컴포넌트를 숨기는 단순한 방법을 선택하였다. 더좋은 방법이 있을까??
Fullscreen 모드에 관한 html 설정은 아래 포스트를 참조하길..


도움이 되셨다면 추천 부탁드립니다.
728x90
반응형
728x90
반응형

HorizontalList를 이용하여 화면을 하나 만들어 보았다.

소스

결과


위처럼 만들면 스크롤바가 눈에 거슬린다. 아니 차라리 없는편이 더 나을지도 모르겠다. HorizontalList을 어떻게 적용하느냐의 문제겠지만, 일단 지저분에 보이는것은 사실.

그래서 어떻게 만들면 보기좋게 만들까 고민을 하다가 버튼을 이용해서 스크롤의 기능을 대신하면 어떨까 라는 생각을 하게되었다.

일단 결과먼저..


보기에도 훨씬 깔끔하고 기존 스크롤보다 사용하기도 편해졌다. (물론 개인적인 생각...)
마우스 오버와 마우스 아웃 이벤트를 사용하였고, 여기에 Timer 이벤트로 지속적으로 마우스 오버이벤트를 발생 시켰다.

소스


간단하게 요약하자면, 마우스가 해당 버튼으로 이동시 마우스 오버 이벤트를 발생하고, 마우스 오버 이벤트에서는 Timer 이벤트를 동작시켜 scrollNextFunction, scrollPreviousFunction 를 호출한다. 호출된 각각의 함수에서는 horizontalListdataProvider 갯수안에서만 움직이도록 코딩해주었다.

위 소스의 전체는 아래에...

소스를 가져가실땐, 댓글을 달아주세요..
728x90
반응형

+ Recent posts