html中SWF文件的高度和宽度

Nav*_*een 3 html flash actionscript-3 mxmlc

在下面的代码中,只有按钮图像嵌入到flex代码中.但是在html对象或embed标签中为什么必须指定高度和宽度.即使这是一个普通按钮,如果我们不指定高度和宽度似乎有些错误

html

<div align="center">
    <br />
    <div style="display:block;width:100px;height:100px;" id="audio" 
        class="testsound" align="center"/>
    <p class="clickable">
        <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 
        width="400" height="100" id="myMovieName">
            <param name="movie" value="/media/players/testsound.swf"/>
            <param name="soundurl" value="/media/players/music.mp3"/>
            <param name="quality" value="high"/>
            <param name="bgcolor" value="#FFFFFF"/>
            <embed width="100" height="100" href="/media/players/testsound.swf" 
                src="/media/players/testsound.swf" 
                flashvars="soundUrl=/media/players/music.mp3" 
                quality="high" bgcolor="#FFFFFF" 
                name="myMovieName" loop="false" align=""
                type="application/x-shockwave-flash">
            </embed>
        </object>
    </p>
</div>
Run Code Online (Sandbox Code Playgroud)

MXML

<?xml version="1.0"?>
<!-- embed/EmbedSound.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Script>
        <![CDATA[

            import flash.media.*; 

            public var snd:Sound = new sndCls() as Sound; 
            public var sndChannel:SoundChannel;

            public function playSound():void {
                sndChannel=snd.play();
            }   

        ]]>
    </mx:Script>
    <mx:Image id="loader1" click="playSound();"
        source="@Embed(source='/opt/cloodon/site/media/img/speaker.gif')" />
</mx:Application>
Run Code Online (Sandbox Code Playgroud)

Dom*_*edi 7

嵌入标记中的高度和宽度是必需属性.在swfobjectAdobe上标记定义以及必需和可选属性.

你问为什么他们被要求或为什么你的页面会破坏,如果你没有它们(提示,第一个答案是第二个问题)?

编辑:

您应该将EMBED和OBJECT标记的width和height属性修改为与swf的大小完全相同.

您可以在.mxml中设置应用程序的宽度和高度

<mx:Application width="300" height="200">
Run Code Online (Sandbox Code Playgroud)

如果将scaleMode设置为"noScale",则不会在swf中看到任何缩放.

stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
Run Code Online (Sandbox Code Playgroud)

如果你在Actionscript 3(你应该是),你可以在主类中设置元数据.

[SWF(width="640", height="480")]
public class MyClass extends Sprite
{
    public function MyClass()
    {
        stage.scaleMode = StageScaleMode.NO_SCALE;
        stage.align = StageAlign.TOP_LEFT;
    }
}
Run Code Online (Sandbox Code Playgroud)