たまたまSafariで過去の記事を見ていて、いくつかのコンテンツが正しく表示されていないのに気づいた。
調べてみると、stage.stageWidth/stageHeightの戻り値がSafariの時だけおかしい。
stage.stageWidthの値をテキストフィールドに表示するだけのプログラムを書いてみたが、FireFoxとOperaでは200と表示されるのにSafariだけ0と表示される。(全て同じIntel mac PC)
別なWindows PCのIE6とFirefoxとOperaでもちゃんと200と表示される。
何がわるいんでしょう。
package {
import flash.display.*;
import flash.text.*;
[SWF(width="200", height="50", backgroundColor="#e0")]
public class StageWidth extends Sprite{
public function StageWidth(){
var tf:TextField = new TextField();
addChild(tf);
tf.width=200;
tf.text = "stage.stageWidth=" + stage.stageWidth.toString();
}
}
}
- 2007/12/12(水) 20:09:31|
- ActionScript 3.0
-
| トラックバック:1
-
| コメント:2
はじめまして。原因はよく分かりませんがmxmlで書くとSafariでも幅は取れました。
Safari 3.0.4 + Flash Player 9.0.115.0 です。
<?xml version="1.0" encoding="utf-8" ?>
<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml">
<mx:Script>
import mx.controls.Alert;
private function onClick():void {
Alert.show(stage.stageWidth.toString());
}
</mx:Script>
<mx:Button label="Go" click="onClick()" />
</mx:Application>
- URL |
- 2007/12/13(木) 00:48:31 |
- okuryu #-
- [ 編集]
ありがとうございます。
私の方でもokuryuさんが書いてくださったmxmlをコンバイルしたものだと、safariでも値がとれました。
開発環境の問題でしょうか。Flex2 SDKでやっています。
mxmlc のバージョンは mxmlc -versionで確認すると 2.0.1 build 155542 となっています。
- URL |
- 2007/12/13(木) 07:44:33 |
- yamasv #-
- [ 編集]
「Flashはブラウザに依存しないからフルブラウザテスト不要だよね」とか言われて...
- 2008/01/21(月) 08:04:59 |
- l4l