디스플레이 계층간의 좌표
addChild(_volumeContainer)
_volumeContainer.addChild(_volumeMask)
위를 보면 _volumecontainer는 클래스 계층 상위에 등록 되어 있고 _volumeMask 는 _volumeContainer 의 자식 계층이다. 여기서 클릭했을 때 마우스의 x자표를 mouseX로 구한다고 하자. 마우스를 _volumeMask.x 에서 클릭 해서 좌표 값을 mouseX로 얻으면 값이 다르게 나타난다. mouseX는 stage 좌표 값을 _volumeMask.x 는 _volumeContainer 좌표 값을 가지기 때문이다. 두 좌표 공간은 서로 다르다.
마우스로 클릭으로 _volumeMask.x 와 같은 공간의 좌표 값을 얻는 방법은 간단하다. _volumeContainer.mouseX 이렇게 해주면된다. _volumeMask는 _volumeContainer 안에 있기 때문이다. 이 것 때문에 과제하는데 문제가 있었드랬다.
전체화면으로 전환
버튼 클릭으로 전체화면이 되게 하고, 다시 클릭하면 원래대로 되게 하려면,
if (stage.displayState == StageDisplayState.NORMAL) {
stage.displayState = StageDisplayState.FULL_SCREEN;
} else {
stage.displayState = StageDisplayState.NORMAL;
}
위와 같은 걸 클릭 리스너 안에 넣어 주면 된다.
metaData
이전에 봤던 NetStream 의 client 와 연결된 CustomClient 클래스에서 로드하는 flv의 정보가 담긴 metaData를 얻을 수 있다. 이벤트를 활용하면된다. 아래의 예는 flv의 총 플레이 시간(info.duration)을 얻을려고 하는 거다.
public class CustomClient extends EventDispatcher
{
public function onMetaData(info:Object):void //<---- 콜백 함수... 이벤트 리스너는 아니지만 비슷한 역할을 한다.
{
trace("metadata: duration=" + info.duration + " width=" + info.width + " height=" + info.height + " framerate=" + info.framerate);
dispatchEvent(CustomEvent.create(GET_META_DATA_DURATION, info.duration));
}
public function onCuePoint(info:Object):void
{
trace("cuepoint: time=" + info.time + " name=" + info.name + " type=" + info.type);
}
}
stream=new NetStream(connection);
stream.addEventListener(NetStatusEvent.NET_STATUS, onNetStatusHandler);
stream.client=new CustomClient();
stream.client.addEventListener(GET_META_DATA_DURATION, onReceiveMataData);
flv=new Video();
flv.attachNetStream(stream);
stream.play(flvURL) // <---- play 할때 접근...그래서 이거 전에 리스너 등록...
stream.pause();
private function onReceiveMataData(e:CustomEvent):void {
duration = e.data //<---- duration 변수에 담는다.
}
stream 이 실질적으로 play 시작해서 flv를 로드할 때 onMetaData에 접근한다. 그래서 이거 전에 데이타를 받을 리스너를 등록해야한다는 것에 주의해야 한다.
'prev record' 카테고리의 다른 글
[2010.05.11.화요일] SharedObject (0) | 2013.07.14 |
---|---|
[2010.05.10.월요일] FileReference (0) | 2013.07.14 |
[2010.05.07.금요일] NetStream의 client 프로퍼티 (0) | 2013.07.14 |
[2010.05.06.목요일] 비디오 제어 (0) | 2013.07.14 |
[2010.05.05.수요일] sound 제어 (0) | 2013.07.14 |