기본 화면 메뉴 만들기(Flash Professional만 해당)
이 단원에서는 응용 프로그램의 기본 화면에 메뉴를 만듭니다. 이 메뉴는 Specials, View Video 및 Reservations의 세 가지 옵션으로 구성되어 있습니다.
- 테스트 장치 및 내용 형식 선택 (Flash Professional만 해당)에서 저장한 파일을 Flash Professional 8에서 엽니다.
- 타임라인 윈도우(윈도우 > 타임라인)의 메뉴 레이어에서 프레임 1을 선택합니다.
- 메뉴를 만들기 위해 라이브러리 패널(윈도우 > 라이브러리)을 열고 specials button 심볼을 스테이지로 드래그합니다.
레스토랑을 소개하는 텍스트 필드(이미 만들어져 있음) 아래에 버튼을 배치합니다.
- specials button을 선택한 상태로 속성 관리자에서 인스턴스 이름 텍스트 상자에 specials_btn을 입력합니다.
- video button 심볼의 인스턴스를 스테이지로 드래그하여 specials button 아래에 배치합니다.
- video button을 선택한 상태로 속성 관리자에서 인스턴스 이름 텍스트 상자에 video_btn을 입력합니다.
- reservations button 심볼의 인스턴스를 스테이지로 드래그하여 video button 아래에 배치합니다.
- reservations button을 선택한 상태로 속성 관리자에서 인스턴스 이름 텍스트 상자에 reservations_btn을 입력합니다.
응용 프로그램의 스테이지가 다음 예와 같은 모습이어야 합니다.
- 타임라인의 ActionScript 레이어에서 프레임 1을 선택합니다.
- 액션 패널(윈도우 > 액션)에 다음 코드를 입력합니다.
stop(); _focusrect = false; fscommand2("SetSoftKeys", "Set Location", "Exit"); fscommand2("SetQuality", "high"); fscommand2("Fullscreen", "true");
이 코드는 다음과 같은 작업을 수행합니다.
- 이 프레임에서 재생 헤드를 중단합니다.
- Flash Lite에서 기본적으로 현재 포커스를 갖고 있는 버튼 또는 입력 텍스트 필드 주위에 표시되는 포커스 사각형이 나타나지 않도록 합니다(Flash Lite 2.x 응용 프로그램 개발의 초점 사각형 참조).
- 응용 프로그램에서 사용할 소프트 키를 등록합니다.
- 플레이어의 렌더링 품질을 높게 설정합니다. 기본적으로 Flash Lite는 그래픽 내용을 보통 품질로 렌더링합니다.
- 플레이어에서 응용 프로그램을 전체 화면으로 표시하도록 합니다.
Flash Lite가 전체 화면 모드일 때는
SetSoftKeys
명령에서 지정한 레이블이 표시되지 않습니다. 따라서 스테이지에 사용자 정의 소프트 키 레이블을 추가해야 합니다. - 다음 코드를 추가하여 메뉴 버튼과 선택 포커스에 대한 버튼 이벤트를 처리합니다.
// 응용 프로그램을 시작할 때와 다른 화면에서 // 기본 화면으로 돌아올 때 초기 포커스를 // 설정합니다. if (selectedItem == null) { Selection.setFocus (specials_btn); } else { Selection.setFocus (selectedItem); } // 각각의 메뉴 버튼에 onPress 이벤트 핸들러를 할당하고 // selectedItem 변수를 // 선택된 버튼 객체로 설정합니다. specials_btn.onPress = function () { gotoAndStop ("specials"); selectedItem = this; }; video_btn.onPress = function () { gotoAndStop ("video"); selectedItem = this; }; reservations_btn.onPress = function () { if (location_so.data.phoneNumber == undefined) { // 사용자가 위치를 지정하지 않았으므로 // "위치 설정" 화면으로 이동합니다. gotoAndStop ("options"); } else { // 공유 객체에 번호를 호출합니다. var phoneNum = location_so.data.phoneNumber; getURL ("tel:" + phoneNum); } selectedItem = this; };
specials_btn
및video_btn
이라는 버튼에 할당된onPress
이벤트 핸들러가 각각 "specials" 및 "video" 프레임으로 재생 헤드를 보냅니다. 위의 단원에 대한 내용은 이 자습 과정의 뒷부분에서 만들 것입니다(스페셜 화면 만들기(Flash Professional만 해당) 및 비디오 화면 만들기(Flash Professional만 해당) 참조).사용자가 Reservations 옵션을 선택하면
onPress
핸들러가location_so
공유 객체에 지정된 전화 번호로 전화를 겁니다.(이 과정의 뒷부분에서 공유 객체를 만들기 위한 코드를 만들 것입니다.) 사용자가 예약 전화를 할 레스토랑 위치를 아직 지정하지 않은 경우에는 응용 프로그램에서 재생 헤드를 "options" 프레임으로 보내어 거기서 사용자가 예약하려는 레스토랑 위치를 선택하도록 합니다. - 이제 다음 코드를 추가하여 왼쪽 및 오른쪽 소프트 키에 대한 키 리스너를 만듭니다.
Key.removeListener(myListener); var myListener:Object = new Object(); myListener.onKeyDown = function() { var keyCode = Key.getCode(); if (keyCode == ExtendedKey.SOFT1) { // 왼쪽 소프트 키 이벤트 처리 gotoAndStop("options"); } else if (keyCode == ExtendedKey.SOFT2) { // 오른쪽 소프트 키 이벤트 처리 fscommand2("Quit"); } }; Key.addListener(myListener);
이 코드는 키 리스너 객체를 사용하여 왼쪽 및 오른쪽 소프트 키 이벤트를 처리합니다. 사용자가 왼쪽 소프트 키를 누르면 재생 헤드가 "options" 프레임으로 보내지고 오른쪽 소프트 키를 누르면 응용 프로그램이 종료됩니다.
이벤트 리스너 사용에 대한 자세한 내용은 Flash Lite 2.x 응용 프로그램 개발의 키 수신기를 사용하여 키 누르기 이벤트 처리(Flash Professional만 해당)를 참조하십시오.
- 마지막으로 코드를 추가하여 예약하려는 레스토랑의 위치를 저장하는 공유 객체를 초기화합니다.
// 공유 객체 리스너 함수를 정의합니다. function so_listener (the_so:SharedObject) { if (the_so.getSize () == 0) { // 공유 객체가 존재하지 않으므로 // 사용자가 아직 환경 설정을 하지 않았습니다. } SharedObject.removeListener ("location"); } // 공유 객체를 만듭니다. location_so = SharedObject.getLocal ("location"); // SharedObject 리스너 객체를 추가합니다. SharedObject.addListener ("location", this, "so_listener");
- 지금까지 만든 작업을 테스트하려면 컨트롤 > 무비 테스트를 선택합니다.
이때 사용자가 해당 버튼에 포커스를 두고 에뮬레이터의 선택 키 또는 컴퓨터 키보드의 Enter 키를 눌러서 메뉴 항목을 선택할 수 있어야 합니다. 다음 단원에서는 스페셜 화면, 비디오 화면 및 기본 위치를 지정하는 화면을 만들 것입니다.