1. 소개
Macromedia의 Flash는 이제 웹 사이트의 콘텐츠 설명을 향상시키기 위해 인터넷에서 널리 사용되고 있습니다. Macromedia의 최근 Flash 릴리스(Flash 6 및 Flash MX)를 통해 Macromedia는 웹 응용 프로그램 개발을 위한 인터페이스로 Flash를 진지하게 고려하고 있음이 분명해졌습니다. 인터페이스의 경우 Flash가 훌륭한 선택일 수 있지만 비즈니스 논리, 쿼리 관리 및 보안을 대체하는 데 사용하는 것은 아닙니다. 웹 개발자가 진정으로 강력한 성능과 엔터프라이즈급 기능을 달성하려면 Microsoft의 .NET 기술과 결합된 .NET, Flash 및 풍부한 설명 레이어 지원이 필요합니다.
Flash에는 애니메이션에 상호작용 기능을 추가하는 데 사용되는 스크립팅 언어인 ActionScript가 포함되어 있습니다. Flash 5에 ActionScript가 도입된 이후 Macromedia는 ActionScript를 단순한 스크립팅 언어에서 여전히 많은 제한 사항이 있는 매우 견고한 프로그래밍 기능으로 계속해서 개선해 왔습니다. Flash MX 2004에서 Macromedia는 새로운 기능과 코드 구조화 방법을 지원하는 ActionScript 2.0을 도입했습니다. 이 기사를 더 쉽게 이해하려면 먼저 ActionScript를 사용하여 Flash 사이트를 구축하는 방법에 대한 몇 가지 기본 지식을 읽어야 합니다.
Macromedia는 더욱 복잡하고 강력한 데이터 기반 응용 프로그램을 허용하기 위해 외부 데이터를 Flash 응용 프로그램에 쉽게 통합하는 방법을 도입했습니다. Flash와 .NET은 모두 크로스 플랫폼 솔루션으로 홍보되므로 자연스러운 파트너가 됩니다. 하지만 두 기술을 연결하는 것은 간단한 작업이 아닙니다. 이 기사에서는 Flash와 .NET 애플리케이션을 통합하는 여러 가지 방법에 대해 설명합니다.
2. Flash와 ASP.NET을 통합
하고 Flash 애니메이션을 ASP.NET 페이지에 포함시킵니다.
Macromedia Flash 애니메이션은 OBJECT 및 EMBED 태그를 함께 사용하여 .aspx 페이지에 배치됩니다. EMBED 태그는 원래 Netscape 2.0 이상에서 작동하도록 Netscape에서 개발되었습니다. 나중에 이 태그는 MSIE(Microsoft Internet Explorer)에서 채택되었습니다. 브라우저 호환성을 위해 MSIE 전용 OBJECT 태그와 EMBED 태그를 함께 사용할 수 있습니다. 다음 HTML 코드는 OBJECT 태그 및 EMBED 태그를 사용하여 Flash 애니메이션(*.swf 파일)을 포함하는 방법을 보여줍니다.
3. 외부 데이터에 Flash 연결
Flash 애니메이션을 외부 데이터와 통합하는 방법에는 FlashVars, LoadVars 및 새로운 FlashRemoting 기술이 있습니다. 가장 간단한 방법 중 하나는 FlashVars를 사용하여 코드의 HTML 부분에 변수를 전달함으로써 .aspx 페이지의 외부 데이터를 웹 페이지에 포함된 Flash 애니메이션으로 전달하는 것입니다. FlashVars를 사용하여 설정된 이러한 변수의 값은 Flash 애니메이션의 루트 수준에서 액세스할 수 있습니다. 모든 브라우저 환경에서 실행하려면 FlashVars 속성에 OBJECT 및 EMBED 태그의 값이 할당되어야 합니다.
다음은 객체 태그와 함께 사용되는 FlashVars입니다.
<PARAM Name="FlashVars" Value="init=yes&check=true">
다음은 EMBED 태그와 함께 사용되는 FlashVars입니다.
<EMBED src="test.swf" FlashVars=" init =yes&check=true"></EMBED>
4. FlashVars를 사용하는 이유는 무엇입니까?
FlashVars를 차용하는 대신 HTML 태그에 변수를 넣을 수도 있습니다. 변수를 쿼리 문자열을 통해 .SWF 파일의 URL 끝에 추가한 다음 Flash 애니메이션에 전달할 수도 있습니다. 이 접근 방식에는 문제가 있을 수 있습니다. .SWF 파일을 로드할 때 이 변수가 필요한 경우, 서버에서 데이터를 요청하기 전에 .SWF 파일을 다운로드하고 실행해야 하기 때문입니다. 변수 값은 "변수 로드" 방법과 JavaScript를 통해 플래시에서 설정할 수도 있습니다. 이러한 각 방법에는 응답 시간이 느리고 느리다는 단점이 있습니다. 이것이 바로 개발자가 FlashVars를 사용하여 ASP.NET에서 Flash 애니메이션으로 데이터를 전달해야 하는 이유입니다. 다음 그림은 변수를 쿼리 문자열로 전달하는 코드를 보여줍니다.
FlashVars를 사용하여 전달된 모든 변수는 Flash 애니메이션의 루트 수준(_level0)에서 액세스할 수 있습니다. Flash 애니메이션 내에서 이러한 값을 검색하려면 동적 변수를 생성하면 됩니다. 다음 ActionScript 코드는 Flash에서 "initvalue" 할당을 구현합니다.
_level0.initvalue = init;
5. Flash와 데이터베이스 간의 통신
Flash 애니메이션은 데이터베이스에 직접 액세스할 수 없습니다. 그러나 Flash는 ASP 또는 ASP.NET과 같은 서버측 기술을 통해 데이터베이스와 통신할 수 있습니다. 이 작업을 수행하는 방법에는 여러 가지가 있습니다. 이번 글에서는 LoadVariables 메소드와 sendAndLoad 메소드에 대해 설명하겠습니다.
(1) 애니메이션 클립의 loadVariables 메소드를 사용합니다.
애니메이션 클립의 loadVariables 메소드는 외부 파일이나 URL에서 데이터를 읽어 애니메이션 클립의 변수 값을 설정합니다. 애니메이션 클립이 인스턴스화되면 클립 이벤트 이벤트 핸들러에서 애니메이션 클립의 로드 작업이 시작됩니다. 애니메이션 클립이 초기화되면 loadVariables 메서드를 호출하여 변수를 로드할 수 있습니다. loadVariables 메서드는 비동기 호출이며 Flash는 호출 결과를 기다리지 않습니다. loadVariables() 동작에서 데이터가 수신되면 애니메이션 클립의 데이터 동작이 클립 이벤트 이벤트 핸들러에서 초기화됩니다.
이 방법의 사용법을 보여주기 위해 이 예에서는 Flash 애니메이션에서 선택한 ID를 기반으로 데이터베이스에서 사용자의 이름과 나이를 검색합니다. 아래 그림에서 애니메이션의 loadVariables 메서드는 .aspx 페이지 getUserData.aspx에서 애니메이션 조각으로 데이터를 로드하는 데 사용됩니다. 여기에서 ActionScript는 사용자의 ID를 전달합니다. 사용자의 이름과 나이는 Flash 애니메이션에 .aspx 페이지에 대한 쿼리 문자열로 표시됩니다.
getUserData.aspx 페이지는 아래 표시된 쿼리 문자열에서 id 값을 검색합니다.
이제 ASP.NET은 이 값 ID를 .NET 비즈니스 구성 요소에 전달할 수 있습니다. 이 예에서는 사용자의 이름과 나이를 검색합니다.
이 섹션 앞부분에서 언급한 것처럼 애니메이션 클립의 onClipEvent 이벤트 핸들러의 데이터 동작은 loadVariables() 동작에서 데이터가 수신될 때 초기화됩니다. Flash 애니메이션에서 flashName 및 flashAge라는 동적 변수를 선언합니다. 다음 그림은 .aspx 페이지에서 반환된 값을 검색하기 위해 Flash 애니메이션의 onClipEvent 핸들러에서 사용되는 ActionScript 코드를 보여줍니다.
참고: 중요합니다. 이는 .aspx 페이지에서 설정된 것과 동일한 변수입니다. 여기에 표시된 예에서 Flash 애니메이션에서 액세스되는 변수는 "name"입니다. 이는 .aspx 페이지(Response.Write("name="&User.name))에서 설정한 것과 동일한 변수입니다.
이제 이러한 값을 Flash 애니메이션 내에서 사용할 수 있습니다.
(2) 애니메이션 클립에서 sendAndLoad 메서드를 사용합니다.
오늘날의 인터넷에서 XML은 다양한 유형의 응용 프로그램 간에도 데이터를 원활하게 교환할 수 있는 잠재력을 지닌 범용 전송 형식으로서 문서 시스템 형태로 중요한 위치를 차지하고 있습니다. XML은 응용 프로그램 간 통신을 위한 게이트웨이 메커니즘을 제공합니다. 심지어 다양한 시스템에 있는 응용 프로그램도 마찬가지입니다. 애플리케이션이 데이터를 공유할 수 있고(HTTP, 파일 공유 또는 기타 메커니즘을 통해) XML 구문 분석기가 있는 한, 처리하기 매우 쉬운 구조화된 정보를 공유할 수 있습니다.
Flash MX는 XML 데이터 전송을 지원하며 XML 교환을 위한 ASP 및 ASP.NET과 같은 여러 가지 서버 기술 방법이 있습니다. Flash MX는 XML 클래스(로드, 전송 및 sendAndLoad 또는 Flash MX의 새로운 XMLConnector)를 사용하여 XML 패킷을 보내고 받을 수 있습니다. 마지막 것은 HTTP를 통해 패킷을 보내고 받고 이를 Flash 레이어의 UI 위젯에 바인딩하는 데 사용할 수 있습니다.
아키텍처 지향 XML 데이터 통신, 예외 처리 및 성능을 구현하는 데 널리 사용되는 방법인 FlashXML 객체의 sendAndLoad 방법에 대해 논의해 보겠습니다. 우리는 사용자의 점수 세부 정보를 Flash 클라이언트의 데이터베이스에 삽입하고 성공 또는 실패 메시지를 Flash 클라이언트로 다시 보내는 간단한 예를 사용합니다.
(3) Flash에서 XML 패킷 생성
XML 패킷은 Flash에서 다음과 같이 쉽게 생성할 수 있습니다.
var sendXML:XML = new XML("<userid>123456</userid>")
XML 패킷을 서버 측으로 보냅니다. 페이지 - ASP/ASP.NET을 사용하고 반환 XML 패킷을 처리합니다.
사용법은 다음과 같습니다:
xmlObject.sendAndLoad(URL: String, targetXMLObject: XML): Void
이 'xmlObject'는 XML 개체 인스턴스입니다. 이는 .aspx 페이지로 보내야 하는 XML을 캡슐화합니다. XML 개체를 지정하는 대상 URL입니다. 'targetXMLObject'는 XML 개체입니다. 서버 측에서 반환된 정보를 받습니다.
sendAndLoad 메서드는 XML 패킷을 서버 측 템플릿으로 보내고 응답으로 XML 패킷을 받습니다. XML 클래스의 send 메서드와 달리 XML 패킷만 보내고 어떤 종류의 응답도 기대하지 않습니다. 이러한 각 메소드는 고유한 방식으로 작동하지만 한 가지 중요한 차이점이 있습니다. XML 클래스의 전송 메소드는 대상을 매개변수로 사용합니다. 이를 통해 새 브라우저 창을 열거나 현재 브라우저 창의 내용을 바꿀 수 있습니다. 반면 sendAndLoad 메소드는 XML 패킷을 매개변수로 사용하며 새 브라우저 창을 시작하지 않습니다. send 메소드는 새 브라우저 창을 열므로 브라우저 창 자체의 출력을 볼 수 있으며 이는 디버깅에 매우 유용할 수 있습니다.
참고: sendAndLoad 호출을 실행하는 플래시 파일이 웹 브라우저에서 실행 중인 경우 대상 URL은 플래시 애니메이션과 동일한 도메인에 있습니다. 다른 도메인의 응용 프로그램과도 통신해야 하는 경우 자세한 내용은
www.macromedia.com 에서 "교차 도메인 데이터 로드"를 참조하세요.
다음 그림의 코드는 XML 개체의 sendAndLoad 메서드를 사용하여 .aspx 페이지와 통신하고 서버에서 반환된 XML을 처리하는 방법을 보여줍니다.
위 코드는 다음을 수행합니다.
·XML 문자열을 XML 개체 "userscore_xml"에 로드합니다. 인스턴스는 원격 서버 측 ASP.NET 페이지로 전송되는 XML을 보유합니다.
·XML 객체 "ResponseXMLObj_xml"의ignoreWhite 속성을 설정합니다. 이 XML 개체 인스턴스는 서버의 XML 패킷을 보유합니다.
·XML 개체 "ResponseXMLObj_xml"의 onLoad 메서드를 설정합니다. Flash는 서버측 .aspx 페이지로부터 XML 응답을 다시 수신합니다. 이 응답은 XML 객체의 onLoad 메서드에서 처리됩니다.
·그런 다음 수신된 XML 패킷을 구문 분석하여 Flash 클라이언트에 필요한 메시지를 표시합니다.
(4) ASPX 페이지의 Flash에서 보낸 XML 패키지를 받습니다.
다음 그림은 이 작업을 완료하는 코드를 보여줍니다.
위 코드는 다음을 수행합니다.
· Flash 클라이언트(xmlDoc.Load(Request.InputStream))에서 전송된 XML을 수신합니다.
· 수신된 XML을 구문 분석하고 데이터베이스에 삽입하기 위해 비즈니스 구성 요소에 전달합니다.
· 형성된 XML 메시지가 Flash 클라이언트로 다시 전송됩니다. 비즈니스 계층에서 발생한 성공 또는 예외 조건은 그에 따라 처리되고 다양한 XML 메시지로 변환됩니다. 이 메시지는 Flash 클라이언트로 다시 전달됩니다. Flash 클라이언트는 이러한 XML 메시지를 수신하고 이에 따라 표시합니다.
6. 결론
Flash 및 .NET 기술은 오늘날 시장에서 인기를 얻고 있으며 점점 더 많은 애플리케이션 아키텍처에서 함께 성공적인 파트너가 될 가능성이 높습니다. 이 두 기술은 일부 동일한 문제를 다루지만 근본적으로 다릅니다. Flash MX를 사용하면 웹 사이트에서 상호 작용을 경험할 수 있고 .NET은 엔터프라이즈 응용 프로그램을 구축하는 데 도움이 됩니다. 이 기사에서 살펴본 것처럼 Flash와 .NET 애플리케이션을 통합하는 것은 전적으로 가능합니다. 모든 단계는 결정을 내리는 것, 즉 이 두 부분을 연결하고 전략적으로 올바른 아키텍처 계획을 수행하는 방법에 관한 것입니다.
Flash Remoting을 중심으로 한 차세대 아키텍처가 이 분야에서 추진력을 얻고 있지만 이 기사에서 설명하는 방법이 대규모 애플리케이션에 적용되기까지는 몇 년이 걸릴 것입니다.