Published in: Other
// ver 080128 class lib.chrono_display { /* ////////////// 初期設定:コンテンツサイズ設定用 ////////////// */ //初期設定: var contentsX:Number; var contentsY:Number; //ステージ表示設定 var contentsAlign:String; var contentsMode:String; // コンテンツ初期化ファンクション function init(cx:Number, cy:Number, calign:String, cmode:String):Void { if (cx != null) { contentsX = cx; } else { contentsX = 800; } if (cy != null) { contentsY = cy; } else { contentsY = 600; } if (calign != null) { contentsAlign = calign; } else { contentsAlign = "TL"; } if (cmode != null) { contentsMode = cmode; } else { contentsMode = "noScale"; } //ステージ表示設定 Stage.align = contentsAlign; Stage.scaleMode = contentsMode; } function set_param(mc:Object, tmp_param:Object) :Void { /** *mc: オブジェクト名を格納 *halign: 左=[left] / センター=[center] / 右 =[right] / 右でx<0のときx=0 [xright] *valgin: 上=[top] / センター=[center] / 下=[bottom] *fit: 縦=[v] / 横=[h] /両方=[hv] / 拡大しない=[null] ----> 縦横の画面いっぱいに伸張 *match: 縦=[mv] / 横=[mh] / 両方[mhv] / 拡大しない=[null] / 大きい方にあわせる[fullsize] ----> 縦横のリサイズのどちらを基準に追随するか *sflag: 最大=[max] / 最小=[min] / サイズ固定[fix] / 制限なし=[null] -- s1:横幅ピクセル数 s2:縦幅ピクセル数 s3:倍率 100%だと等倍 *xoffset: 横の配置位置オフセット ピクセル数を入力します *yoffset: 縦の配置位置オフセット ピクセル数を入力します **/ //引数が空の場合、初期化する mc._halign = tmp_param.halign ? tmp_param.halign : "center"; mc._valign = tmp_param.valign ? tmp_param.valign : "center"; mc._fit = tmp_param.fit ? tmp_param.fit : ""; mc._match = tmp_param.match ? tmp_param.match : ""; mc._sflag = tmp_param.sflag ? tmp_param.sflag : ""; mc._xoffset = tmp_param.xoffset ? tmp_param.xoffset : 0; mc._yoffset = tmp_param.yoffset ? tmp_param.yoffset : 0; mc._s1 = tmp_param.s1 ? tmp_param.s1 : ""; mc._s2 = tmp_param.s2 ? tmp_param.s2 : ""; mc._s3 = tmp_param.s3 ? tmp_param.s3 : ""; mc._s4 = tmp_param.s4 ? tmp_param.s4 : ""; mc.tmp_xscale = 100; mc.tmp_yscale = 100; //オブジェクトの元位置を退避 スタート位置 mc.tmp_x = mc._s1; mc.tmp_y = mc._s2; mc.tmp_w = mc._width; mc.tmp_h = mc._height; //ステージサイズ用のオブジェクトを作成 var myStage = new Object(); Stage.addListener(myStage); if(mc._sflag == null || mc._sflag == "") { mc.tmp_width = Math.round(mc._width); mc.tmp_height = Math.round(mc._height); } else { mc.tmp_width = mc._s1; mc.tmp_height = mc._s2; } // オブジェクトを描画 draw_disp(mc); // 現在のオブジェクトを退避する ** var tmp_mc = this; myStage.onResize = function() { // オブジェクトを描画 tmp_mc.draw_disp(mc); } } function draw_disp(mc:Object) { //ステージの縦と横のサイズを取得する var nowStageW:Number = Stage.width; var nowStageH:Number = Stage.height; var zoomRate:Number = 100; //fitを設定する if (mc._fit == "h") { mc._width = nowStageW; } if (mc._fit == "v") { mc._height = nowStageH; } if (mc._fit == "hv") { mc._width = nowStageW; mc._height = nowStageH; } //matchを設定する if (mc._match == "mh") { //ステージの横幅を基準としてコンテンツのサイズを拡大率で指定 var zoomRate:Number = (nowStageW / contentsX)*100; if(mc._sflag == "max") { if(zoomRate > mc._s3) { zoomRate = mc._s3; } } if(mc._sflag == "min") { if(zoomRate < mc._s3) { zoomRate = mc._s3; } } mc._xscale = zoomRate; mc._yscale = zoomRate; mc.tmp_xscale = zoomRate; mc.tmp_yscale = zoomRate; } if (mc._match == "mv") { //ステージの縦幅を基準としてコンテンツのサイズを拡大率で指定 var zoomRate:Number = (nowStageH / contentsY)*100; if(mc._sflag == "max") { if(zoomRate > mc._s3) { zoomRate = mc._s3; } } if(mc._sflag == "min") { if(zoomRate < mc._s3) { zoomRate = mc._s3; } } mc._xscale = zoomRate; mc._yscale = zoomRate; mc.tmp_xscale = zoomRate; mc.tmp_yscale = zoomRate; } if (mc._match == "mvh") { //ステージの縦幅、横幅の両方を基準としてコンテンツのサイズを拡大率で指定 var zoomRateX:Number = (nowStageW / contentsX)*100; var zoomRateY:Number = (nowStageH / contentsY)*100; if (zoomRateX<zoomRateY) { zoomRate = zoomRateX; } else { zoomRate = zoomRateY; } if(mc._sflag == "max") { if(zoomRate > mc._s3) { zoomRate = mc._s3; } } if(mc._sflag == "min") { if(zoomRate < mc._s3) { zoomRate = mc._s3; } } mc._xscale = zoomRate; mc._yscale = zoomRate; mc.tmp_xscale = zoomRate; mc.tmp_yscale = zoomRate; } // nakakita // mcの大きい方に合わせる 隙間なし if (mc._match == "fullsize") { // 縦横の比率 var zoomRateX:Number = (nowStageW / contentsX)*100; var zoomRateY:Number = (nowStageH / contentsY)*100; if (zoomRateX > zoomRateY) { //ステージの横幅を基準としてコンテンツのサイズを拡大率で指定 zoomRate = zoomRateX; }else{ zoomRate = zoomRateY; } //ステージの縦幅を基準としてコンテンツのサイズを拡大率で指定 if(mc._sflag == "max") { if(zoomRate > mc._s3) { zoomRate = mc._s3; } } if(mc._sflag == "min") { if(zoomRate < mc._s3) { zoomRate = mc._s3; } } mc._xscale = zoomRate; mc._yscale = zoomRate; mc.tmp_xscale = zoomRate; mc.tmp_yscale = zoomRate; } //halignを設定する if (mc._halign == "left") { mc._x = 0 + mc._xoffset; } if (mc._halign == "right") { mc._x = Math.round(nowStageW - (mc.tmp_width * (mc.tmp_xscale / 100)) + mc._xoffset); } if (mc._halign == "xright") { // xが0以下になると小さくならない if (nowStageW <= mc._width) { mc._x = 0; }else{ mc._x = Math.round(nowStageW - (mc.tmp_width * (mc.tmp_xscale / 100)) + mc._xoffset); } } if (mc._halign == "center") { mc._x = Math.round((nowStageW/2)-((mc.tmp_width * (mc.tmp_xscale / 100)) / 2) + mc._xoffset); } //valignを設定する if (mc._valign == "top") { mc._y = 0 + mc._yoffset; } if (mc._valign == "bottom") { mc._y = Math.round(nowStageH - (mc.tmp_height * (mc.tmp_yscale / 100)) + mc._yoffset); } if (mc._valign == "center") { mc._y = Math.round((nowStageH/2)-((mc.tmp_height * (mc.tmp_yscale / 100)) / 2) + mc._yoffset); } return; } }
You need to login to post a comment.
