보호된 내용을 보기 위해 사용자 인증이 필요한 경우 AIR 응용 프로그램은 일반적으로 사용자 인터페이스를 통해 사용자의 인증 자격 증명을 검색해야 합니다.
다음은 사용자 자격 증명을 검색하는 간단한 사용자 인터페이스에 대한 Flex 예제입니다. 이 인터페이스는 사용자 이름 및 암호 자격 증명에 대해 하나당 두 개의 TextInput 객체가 포함된 패널 객체로 구성됩니다. 이 패널에는 credentials() 메서드를 시작하는 버튼도 포함되어 있습니다.
<mx:Panel x="236.5" y="113" width="325" height="204" layout="absolute" title="Login">
<mx:TextInput x="110" y="46" id="uName"/>
<mx:TextInput x="110" y="76" id="pWord" displayAsPassword="true"/>
<mx:Text x="35" y="48" text="Username:"/>
<mx:Text x="35" y="78" text="Password:"/>
<mx:Button x="120" y="115" label="Login" click="credentials()"/>
</mx:Panel>
credentials() 메서드는 사용자 이름 및 암호 값을 setDRMAuthenticationCredentials() 메서드에 전달하는 사용자 정의 메서드입니다. 값이 전달되면 credentials() 메서드는 TextInput 객체의 값을 재설정합니다.
<mx:Script>
<![CDATA[
public function credentials():void
{
videoStream.setDRMAuthenticationCredentials(uName, pWord, "drm");
uName.text = "";
pWord.text = "";
}
]]>
</mx:Script>
이러한 유형의 단순한 인터페이스를 구현하는 한 가지 방법은 해당 패널을 새로운 상태의 일부로 포함하는 것입니다. 새로운 상태는 DRMAuthenticateEvent 객체가 발생할 때 기본 상태로부터 시작됩니다. 다음 예제에는 보호된 FLV 파일을 가리키는 소스 특성이 있는 VideoDisplay 객체가 포함되어 있습니다. 이 경우 credentials() 메서드가 응용 프로그램을 기본 상태로 반환하도록 수정됩니다. 이 메서드는 사용자 자격 증명을 전달하고 TextInput 객체 값을 재설정한 후 이러한 작업을 수행합니다.
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
width="800"
height="500"
title="DRM FLV Player"
creationComplete="initApp()" >
<mx:states>
<mx:State name="LOGIN">
<mx:AddChild position="lastChild">
<mx:Panel x="236.5" y="113" width="325" height="204" layout="absolute"
title="Login">
<mx:TextInput x="110" y="46" id="uName"/>
<mx:TextInput x="110" y="76" id="pWord" displayAsPassword="true"/>
<mx:Text x="35" y="48" text="Username:"/>
<mx:Text x="35" y="78" text="Password:"/>
<mx:Button x="120" y="115" label="Login" click="credentials()"/>
<mx:Button x="193" y="115" label="Reset" click="uName.text='';
pWord.text='';"/>
</mx:Panel>
</mx:AddChild>
</mx:State>
</mx:states>
<mx:Script>
<![CDATA[
import flash.events.DRMAuthenticateEvent;
private function initApp():void
{
videoStream.addEventListener(DRMAuthenticateEvent.DRM_AUTHENTICATE,
drmAuthenticateEventHandler);
}
public function credentials():void
{
videoStream.setDRMAuthenticationCredentials(uName, pWord, "drm");
uName.text = "";
pWord.text = "";
currentState='';
}
private function drmAuthenticateEventHandler(event:DRMAuthenticateEvent):void
{
currentState='LOGIN';
}
]]>
</mx:Script>
<mx:VideoDisplay id="video" x="50" y="25" width="700" height="350"
autoPlay="true"
bufferTime="10.0"
source="http://www.example.com/flv/Video.flv" />
</mx:WindowedApplication>