2009-08-24 13 views
0

私は現在、ユーザーが画像をコンテナにロードし、移動して、スケールし、DBに出力することを可能にするFlash AS 3.0アプリケーションを構築しています。ユーザーが画像をアップロードしてスケーリングした後、アルバムビューアに送られ、DBから写真を取得して頭に入れます。私が抱えている問題は、画像がビューアに入ると、スケーリングとポジショニングが正しく機能していないことです。画像は大きくなりますが、元のサイズから縮小できません。Actionscript 3.0画像のスケーリングの問題

私は、ビューアで画像を拡大縮小するには、次のコードを使用しています:

headToLoad.width = headWidth; 
     headToLoad.scaleY > headToLoad.scaleX ? headToLoad.scaleX = headToLoad.scaleY : headToLoad.scaleY = headToLoad.scaleX; 
     headToLoad.x = xPosition; 
     headToLoad.y = yPosition; 

どのような援助は素晴らしいことです。

おかげ ジャスティン

答えて

2

私はあなたがその第二ラインでやろうとしているかわからないんだけど、これを試してみてください。

headToLoad.width = headWidth; 
headToLoad.scaleY = headToLoad.scaleX; 
+0

私は変更を加え、変数として高さを送信していますが、それでも私には同じ出力が得られません。問題は映画の全体的なサイズですか? –

+0

申し訳ありませんが、私はあなたのコメントを理解していません。S – Cay

+0

これで問題は、データのロードが完了する前にムービーのサイズが変更されたことに関連していました。画像を歪ませます。 –

1

機能は、それが何をすべきかを行います。 読み込んだ画像のサイズを最大の幅と高さに収縮させるものが必要な場合は、比率を維持するために、このようなものを使用できます。

import flash.display.*; 
import flash.net.URLRequest; 
import flash.events.Event; 

var maxWidth = 200; 
var maxHeight = 300; 

var headToLoad:Loader = new Loader(); 
headToLoad.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadCompleted); 
addChild(headToLoad); 
headToLoad.load(new URLRequest("picture.jpg")); 

function onLoadCompleted(evt:Event) { 
    var head = evt.target.loader; // or evt.target.content 
    head.width = maxWidth; 
    head.scaleY = head.scaleX; 
    if (head.height > maxHeight) { 
     head.height = maxHeight; 
     head.scaleX = head.scaleY; 
    } 

    head.x = 100; 
    head.y = 100; 
} 
関連する問題