0

ActionScript 3 を使用して、Flash Pro の特定のデバイス画面でのユーザー インタラクションのプロトタイプを作成しようとしています。このユーザー インタラクション プロトタイプをデバイスの画面の実際のサイズでテストする必要があります。テストは通常​​の PC を使用して実行されますが、特定の PC は使用されません。したがって、問題は、プロトタイプ ムービーで実際の寸法をデバイス画面に設定する方法と、可能なモニター画面サイズと解像度 (現実世界の画面寸法の正確なレプリカ)。

つまり、画面サイズは 2 x 1 インチであり、プロトタイプでもこの寸法を維持する必要があります。

私はこの方法を使用しようとしていましたが、適切に適用するスキルレベルがありません:

    this.addEventListener(Event.ENTER_FRAME,loop)

function loop(e:Event):void
{
trace(stage.stageWidth)

}

事前に皆さんに感謝します!

4

2 に答える 2

1

使用する:

stage.addEventListener(Event.RESIZE, onStageResized, false, 0, true);
//and handler
protected function onStageResized(e:Event=null):void
{
    //here code to do something with size change
}

また、ウェブページなどでサイズを変更しないようにステージを設定する必要があることも注目に値します

        stage.align = StageAlign.TOP_LEFT;
        stage.scaleMode = StageScaleMode.NO_SCALE;
于 2013-03-07T14:51:45.943 に答える
0

実際、モバイル デバイスでこれを行うためのプロトタイプ アプリケーションを約 1 年前に作成しました。私は Flex を使用しましたが、これですべての計算を理解できます。これはモバイル デバイス用に作成されたものですが、デスクトップ画面でも動作しない理由はありません。

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark">
    <fx:Declarations>
        <fx:Number id="spacing">5</fx:Number>
    </fx:Declarations>
    <s:Rect id="rectangle" width="{this.sliderWidth.value}" height="{this.sliderHeight.value}" x="{this.spacing}" y="{this.spacing}">
        <s:fill>
            <s:SolidColor color="#ff000f"/>
        </s:fill>
    </s:Rect>
    <s:VGroup bottom="10" width="100%" 
              horizontalAlign="center" gap="20" 
              left="{this.spacing * 2}" right="{this.spacing * 2}" 
              maxWidth="{this.width - 4 * this.spacing}">
        <s:Label id="measurements" opaqueBackground="#ffffff" 
                 text="
                 Box: {(this.rectangle.width/Capabilities.screenDPI).toFixed(2)}in x {(this.rectangle.height/Capabilities.screenDPI).toFixed(2)}in — 
                 {this.rectangle.width}px x {this.rectangle.height}px" 
                 textAlign="center" />

        <s:Label id="screenStats" opaqueBackground="#ffffff" 
                 text="
                 Screen  DPI: {Capabilities.screenDPI} — 
                 Resolution: {Capabilities.screenResolutionX}x{Capabilities.screenResolutionY} — 
                 Size: {(Capabilities.screenResolutionX / Capabilities.screenDPI).toFixed(2)}in x {(Capabilities.screenResolutionY / Capabilities.screenDPI).toFixed(2)}in" 
                 maxWidth="{this.width - 4 * this.spacing}"/>
        <s:HGroup width="100%" horizontalAlign="center" verticalAlign="middle">
            <s:Label text="Width:" opaqueBackground="#ffffff"/>
            <s:HSlider id="sliderWidth" width="100%" height="5%" 
                       maximum="{this.width - 2 * this.spacing}" minimum="{this.spacing}" 
                       value="50" />
        </s:HGroup>
        <s:HGroup width="100%" horizontalAlign="center" verticalAlign="middle">
            <s:Label text="Height:" opaqueBackground="#ffffff"/>
            <s:HSlider id="sliderHeight" width="100%" height="5%" 
                       maximum="{this.height - 2 * this.spacing}" minimum="{this.spacing}" 
                       value="50"/>
        </s:HGroup>
    </s:VGroup>

</s:Application>

これを簡単な Flex プロジェクトに投入して実行することを強くお勧めします。基本的には、ステージ上に赤い四角形を配置し、そのサイズをピクセル ディメンションにすると、実際のサイズが画面に出力されます。これを作ってからテストしたことはありませんが、Nexus 7 と iPad 3 で常にうまく機能し、正確でした。これが間違っている可能性がある唯一の可能性は、デバイスが誤った を報告する場合ですscreenDPI。これは、Flash が時折行うことがあります (たとえば、iPad 3 はしばらくの間、誤った DPI を持っていました)。

于 2013-03-07T20:07:35.593 に答える