당신은 Context3D
그것이 driverInfo
의 볼 받아야합니다 DirectX 또는 OpenGL.
이
이 같은 구현 될 수있다 : GPU를 들어
package
{
import flash.display.Sprite;
import flash.display.Stage3D;
import flash.display3D.Context3D;
import flash.display3D.Context3DRenderMode;
import flash.events.Event;
import flash.system.ApplicationDomain;
import flash.system.Capabilities;
public class X extends Sprite
{
public function X()
{
super();
if (ApplicationDomain.currentDomain.hasDefinition("flash.display.Stage3D"))
{
stage.stage3Ds[0].addEventListener(Event.CONTEXT3D_CREATE, onContext3DCreate);
stage.stage3Ds[0].requestContext3D();
}
}
private function onContext3DCreate(event:Event):void
{
// obtain context
var t:Stage3D = event.target as Stage3D;
var context3D:Context3D = t.context3D;
// detect software mode
if ((context3D.driverInfo == Context3DRenderMode.SOFTWARE)
|| (context3D.driverInfo.indexOf('oftware') > -1))
{
trace("Software mode detected!");
}
trace("Flash Version: " + Capabilities.version);
trace("3D mode: " + context3D.driverInfo);
}
}
}
가 StageVideo 가속, 당신은 StageVideoAvailability.AVAILABLE
을 확인 StageVideoAvailabilityEvent
수신. 당신이 StageVideo가 있으면
package
{
import flash.display.Sprite;
import flash.events.StageVideoAvailabilityEvent;
import flash.media.StageVideoAvailability;
public class X extends Sprite
{
public function X()
{
super();
stage.addEventListener(StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY, onStageVideoState);
}
private function onStageVideoState(event:StageVideoAvailabilityEvent):void
{
if (event.availability == StageVideoAvailability.AVAILABLE)
trace("available");
}
}
}
이 상태가 StageVideoEvent.RENDER_STATE
로 표시됩니다 렌더링 :
이
는 다음과 같이 구현 될 수있다. 디코딩 및 프레젠테이션 모두 하드웨어로 발생할 -
VideoStatus.ACCELERATED
: var stageVideo = stage.stageVideos[0];
stageVideo.addEventListener(StageVideoEvent.RENDER_STATE, stageVideoStateChange);
function stageVideoStateChange(event:StageVideoEvent):void
{
trace("Render State: " + event.status);
}
상태 StageVideoEvent.status
의해 유도 포함 렌더. (최상의 성능.)
VideoStatus.SOFTWARE
- 소프트웨어로 디코딩, 하드웨어로 표현. (허용되는 성능)
VideoStatus.UNAVAILABLE
- 비디오를 처리하는 데 사용할 수있는 GPU 리소스가 없으며 아무 것도 표시되지 않습니다. Video 객체로 돌아갑니다.
감사합니다. @Jason Sturges. – Yovo
'Sprite' 생성자에서'stage'를 사용할 수 없습니다, 당신은 [단계가 빠져 있습니다] (http://stackoverflow.com/a/13444450/238419). –
@ BlueRaja-DannyPflughoeft이 클래스는 애플리케이션의 루트 뷰이므로 '스테이지'가있는 별개의 예제입니다. 자손 디스플레이 객체가 필요로하는'Event.ADDED_TO_STAGE' 핸들러의 표준 라이프 사이클에 의해 복잡하지 않습니다. –