AS3は初めてで、AIR用のカスタムビデオプレーヤービデオプロジェクトを行っています。ビデオの再生方法に関する簡単な例(StageVideo以外)を研究しているときに、Flashからウィンドウの動作に対する素晴らしい自動スケーリング(ストレッチツーフィット)が得られるという独特の状況に遭遇しました。
SWFディレクティブの幅と高さを、作成しているflash.media.Videoオブジェクトの幅と高さに等しく設定するときはいつでも。自動スケーリング、ストレッチしてフィット、サイズ変更可能な動作を実行します。そのようです:
// SWF directive placed before the class declaration of the main class
[SWF( width="1024", height="576", backgroundColor="000000", visible="true" )]
// somewhere in my initialization
myvid = new Video();
with( myvid )
{
x = 0;
y = 0;
width = 1024; // if I set this wxh equal to wxh in the SWF directive it auto-scales!
height = 576;
}
myvid.attachNetStream( myns );
addChild( myvid ); // must come after instancing of video and netstream, and attach to make the auto-scale work
myvid.play( "somevideo.flv" );
両方で幅を16に、高さを9に設定しても、ウィンドウのサイズにぴったりと収まります。この振る舞いを説明してもらえますか?私がドキュメントで読んだもののどれもこれについて言及していませんでした。
誤解しないでください、私はこの振る舞いが好きです!:)それは私にとって物事を簡単にしました。しかし、コードに関しては、設定したコードが自動スケーリングとは何の関係もないため、なぜこれが発生するのかを理解する必要があります。
また、ディレクティブは一体何のためのものですか?純粋なActionScript3に相当するものだけではありませんか?彼らは私にはハックっぽく見えます。