0

カスタムボタンクラスにバックグラウンドMovieClipがあり、受信するマウスイベントに応じて再生ヘッドを別のフレームに移動します(gotoAndStop( "framename")を使用)。

マウスアップイベントを受信すると、再生ヘッドが「リリース」フレームに戻され、背景が元の場所に戻るはずですが、代わりに何も起こらず、背景は元の場所に残ります。これは、Flashが入力するキーフレームによって定義された背景の位置を尊重していないかのようです。

唯一の回避策は、フレームスクリプトを各フレームに追加して、xとyの位置を手動で設定することですが、これは、位置にキーフレームを使用するという目的に反します。

何が起こっている?

4

2 に答える 2

0

これはFlashIDEのバグ、特にタイムラインレイヤーのある種の破損であるように見えます。

破損はFlashCS4で発生しましたが、Flash CS5で開いてコンパイルしたときに持続しました。そのため、どちらのIDEバージョンに固有のものではなく、何らかのコンテンツ生成のバグであると思われます。タイムラインを順不同で作成したり、ドラッグしたり、名前を変更したり、他のファイルからコピーしたりすると、IDEが混乱する可能性があります。具体的には...この特定のオブジェクトを別のオブジェクトからコピーしたのは事実でした。ファイル。そして、それは複雑なオブジェクトでさえありませんでした、それは丸みを帯びた長方形を含み、真剣にドロップシャドウが適用された単なるMovieClipでした。

この問題を解決するために私が行った手順は、ライブラリアイテムに関連付けられているクラスをすべて削除し、標準のMovieClipに戻すことでした。次に、問題のあるレイヤーを完全に削除しました。次に、クラスをライブラリオブジェクトに再割り当てし、ActionScript用にエクスポートしました。最後に、最初のフレームからレイヤーを再構築し、必要に応じて後続のキーフレームを追加しました。フィルタを再適用し、各フレームのクリップの位置を調整しました。

これで、すべてが期待どおりに機能しています。再生ヘッドが任意のフレームに移動すると、クリップの位置、フィルターなどがすべて期待どおりに更新されます。今は期待通りに動いているので、何も悪いことや不可能なことはしていませんでした。それは単に、IDEのデータ構造内で段階的に構築されたキーフレーミングの混乱であったに違いありません。それが今働いていることをうれしく思います。

于 2012-04-04T15:04:20.003 に答える
0

event.updateAfterEvent()を呼び出してみてください。

表示リストが変更されている場合は、このイベントの処理が完了した後にレンダリングするようにFlashPlayerまたはAdobeAIRに指示します。

ここから:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/MouseEvent.html#updateAfterEvent%28%29

于 2012-04-03T19:38:29.947 に答える