-1

これは多くの人が尋ねることかもしれませんが、私は別のことで問題を抱えています。

私は、すべての画像がタグである「ゲーム」セクションを開発しています。これは、フラッシュ ゲームの .swf をロードします。つまり、これは動的に行う必要があります。つまり、すべての file.swf の幅/高さが異なります。 file.swf から幅/高さを取得する PHP で、javascript を使用してこれを実行しようとしましたが、file.swf がロードされたときに高さの問題が発生しました。 JS関数は私に720x714を与えたので...これは事です、私はPHPでこの関数を得ました:

function flash_get(){
ini_set("memory_limit","30M");
$file ="games/miniracing3d.swf";
$info = getimagesize($file);
$width = $info[0];
$height = $info[1];
echo "<script type='text/javascript'>
    $('#game_lb_loaded').flash({
     src: 'games/miniracing3d.swf',
     width:$width,
     height:$height       
      });
</script>"; 
}

ファイルをロードする jquery.flash.js と呼ばれる JS プラグインをロードしますが、Jquery で動作させるにはこれが必要です。さて、私はJqueryでこのコードを取得しました:

$body.on('click','.game_button_link',function() {
var id_game = $(this).attr('id'),
    game = 'games/'+id_game+'.swf';


$("#game_lb_loaded").lightbox_me({
  centered: true,
  closeEsc: true,
  overlayCSS: {
      background: 'black',
      opacity: .8,
      width: 750,
      height: 600
  },
  onLoad: function() {
    $("#game_lb_loaded").flash({
     src: game       
      });

  }
});
});

そのコードは、PHP 関数を作成する前に私が取り組んでいたコードです。まあ、これです。 file" == "file.swf" id="file2" == "file2.swf"...など... 本当のことは、幅/高さをonclickに取得するためにphp関数を混ぜる必要があるということですjquery関数これを実現する方法が本当にわかりません。忘れていました。lightbox_meを使用して、フラッシュファイルを含むライトボックスを開きます...しかし、今は関係ありません。phpとjquery関数を混在させたいT_T、お願いしますあなたの助けが必要です :)

私はこのコードを使用することになります:

Javascript

$body.on('click','.game_button_link',function() {
    var id_game = $(this).attr('id'),
    game = 'games/'+id_game+'.swf';

$("#game_lb_loaded").lightbox_me({
    centered: true,
    closeEsc: false,
    closeClick: false,
    closeSelector: ".close_button_lb",
    appearEffect: "fadeIn",
    overlayCSS: {
      background: 'black',
      opacity: .8,
      width: 800,
      height: 600
    },

  onLoad: function() {
$.post('game_dimension.php', 'game='+game,
function(data){
  var dimensions = data.split(',');
    $('#game_lb_loaded').flash({
        src: game,
        width: dimensions[0],
        height: dimensions[1]
    });
}


);

  },
    destroyOnClose: true
});
});

PHP

<?php
ini_set("memory_limit","30M");
$file = $_POST['game'];
$info = getimagesize($file);
$width = $info[0];
$height = $info[1];
echo $width.','.$height;
?>

助けてくれたみんなに感謝します:)本当に感謝しています!

4

3 に答える 3

0

私はこれがあなたが探しているものだと思いますか?そのスクリプトをエコーする代わりに、phpファイルで

 echo $width.','.$height;

そして、これはあなたのajax呼び出しになります。

$.post('file.php',
    function(data){
        var dimensions = data.split(',');
        $('#game_lb_loaded').flash({
            src: 'games/miniracing3d.swf',
            width: dimensions[0],
            height: dimensions[1]
        });
    }
);

それは役に立ちますか?

于 2013-05-12T02:08:35.643 に答える
0

ページが送信される前 (PHP コード内) に値がわかっている場合は、その値をページの JavaScript に書き出すことができます。私の例では、PHP ファイルの制御下にない関数に渡す必要がある場合を使用します。

<?php

$height = getHeight(); // just for example

?>
<script>
var height = <?php echo $height; ?>;

doSomethingWith( height );
</script>

ページが送信された後であれば、AJAX を使用します。以外は何も出力しない PHP ページを作成します。

<?php
$height = getHeight(); // Just for example
$width = getWidth(); // Just for example
$out = array("height"=>$height, "width"=>$width);
echo json_encode($out);
?>

次に、JavaScriptでjQueryまたは別のJSONパーサーまたはeval()を使用します[ただし、スクリプトの出力を制御し、さらにこれについてよく考える場合のみ]。

var myObj = $.parseJson(serverOutput);

alert(myObj.height);
alert(myObj.width);

以上が一般的な 2 つの方法です。

于 2013-05-12T02:27:51.103 に答える