0

navbar と呼ばれる MovieClip があり、その上にボタンがあります。ボタンを MovieClip に接続して、MovieClip を移動したときにボタンが一緒に移動するようにするにはどうすればよいですか? ナビゲーションバーをドラッグ可能にすることはできましたが、ボタンはドラッグされません。

私は次のことを試しました:

navbar.addChild(button1);

これにより、ボタンが消えました。

4

3 に答える 3

1

あなたのアプローチは正しいです。ボタンを子として MovieClip に追加すると、すべてのボタンを 1 つのアイテムとして移動できるようになります。

ボタンが消える理由はいくつも考えられます。たとえば、x と y が新しい親に対して相対的になっています (つまり、ボタン y を 600 に設定すると、ステージや古い親からではなく、ナビゲーションバーから 600 ピクセル下になります)。

ボタンに設定したプロパティをコメントアウトしてみて、問題が解決するかどうかを確認してください。そこから、どのプロパティがボタンの非表示の原因であるかを特定できます。

したがって、基本的には次のようなものが必要です。

var button1:Button = new Button();
navbar.addChild(button1);

その最小限のコードでもナビゲーション バーにボタンが表示されない場合は、問題が発生している場所を確認できるように、さらにコードを投稿する必要があります。

于 2012-12-11T16:53:26.760 に答える
1

ご想像のとおり、 ボタンと ボタンを独自の要素のように動作させたい場合はnavbar、ボタンをnavbarその上だけでなく、その中に配置する必要があります。

ボタンが消えている理由は、ボタンが Designer のステージに配置されているためです。そのため、ボタンを に追加するとnavbar、2 つの異なるディスプレイ スタックに配置されますが、これは許可されていません。

次のように、Designer内にボタンを配置するnavbarか、AS 用にエクスポートして動的にインスタンス化する必要があります。

var btn:Button1 = new Button1()
navbar.addChild(btn)

クラス名は、ライブラリの [ MovieClip プロパティ]ウィンドウの [ ActionScript にエクスポートButton1]で割り当てられます。

于 2012-12-11T16:53:57.933 に答える
1

Movieclip の X、Y からボタンまでの距離を計算でき、次のようなコードを記述できます。

var diff1:int = navbar.x - example_button1.x;
    stage.addEventListener(Event.ENTER_FRAME, function(event:Event):void{
example_button1.x=navbar.x-diff1;
    });

example_buttons と diff 変数を複製できます。

startDrag()または、同じイベントリスナーで同時に行うことができます。

navbar.addEventListener(someEvent.some, function(event:someEvent):void{
MovieClip(root).navbar.startDrag();
MovieClip(root).example_button1.startDrag();
});

MovieClip(root)メインステージに影響を与えることができます。このプロパティを使用すると、たとえば navbar 内からオブジェクトに影響を与えることができます。

于 2012-12-11T16:59:00.343 に答える