1

私は Actionscript と Flash には比較的慣れていませんが、Microsoft 環境で多くの経験を積んでいるため、私がやろうとしていることは .NET でも機能しますが、Flash では何かが根本的に異なり、理解できません。私は怖いです。

私が抱えている問題は、ステージにライブラリ オブジェクト (この場合は単純な四角形) を追加し、ActionScript 3 を使用して動的に作成することです。

オブジェクトをステージにドラッグすると、高さ 33px、幅 152px で期待どおりに表示されます

インスタンス化する場合は、次のように ActionScript を使用します。

var rect1:myObject = new myObject() ;
rect1.x = 0 ;
rect1.y = 0 ;
addChild ( rect1 ); 

期待通りに表示されます

すぐ下に別のものを配置したいので、次のように書きます。

var rect2:myObject = new myObject() ;
rect2.x = 0 ;
rect2.y = rect1.height ;
addChild ( rect2 ); 

私はそれが最初のオブジェクトと整列し、その下端に触れることを期待していますが、最初のオブジェクトのはるか下に表示されます (デバッグ レポート rect1.height は実際には 106.5 に設定されています!)。

rect2.y = 33 をハードコーディングすると、期待どおりに表示され、最初のオブジェクトに触れます

ここで一体何が起こっているのでしょう。ステージの scaleY を見てきましたが、1 に設定されているだけです。stage.height (273.9) と stage.stageHeight (768) も見て、スケーリングに相関関係があるかどうかを確認しましたが、そうではありません。動作しません。

どんな助けでも大歓迎です。明らかに何かが欠けているように感じますが、ググって死にましたが、何の喜びもありませんでした。

よろしくニール

4

2 に答える 2

1

登録ポイントの問題のようです。

基準点は、シンボルのインスタンスがその x、y 位置を基準にして配置される場所を指定するものです。

ライブラリでシンボルをダブルクリックすると、シンボルの内容が表示され、基準点を表す小さな十字線が表示されます。通常、コンテンツをその基準点の中央に配置するか、コンテンツの左上隅に配置する必要があります。

私の推測では、これはあなたの問題かもしれませんが、あなたのコンテンツを見ないと確かなことは言えません.

この基準点はローテーションにも利用されます。オブジェクトをその中心点を中心に回転させたい場合は、基準点がオブジェクトの中心にあることを確認する必要があります。

于 2013-05-06T16:51:49.960 に答える
1

これを試して :rect2.y = rect1.y + rect1.height ;

于 2013-05-06T11:08:56.650 に答える