アイテムを選択して上下に移動できるように、Flashで構築したメニューシステムがあります。オブジェクトがメニューから削除された場合は、選択した項目をnullに設定して、それ以上移動しようとはしません。Flash AS3 - nullに設定されていないオブジェクト
Iは、(現在のムービークリップのタイムラインのための)グローバル変数を有する:格納メニュー項目が(メニュー項目は、単にムービークリップである)を選択し、その項目が削除された場合、Iが設定されているもの
var selectedPlaylistItem:MovieClip;
をnullに選択した項目:トレースは問題なくヌル表示されますが、私はnullに設定した後、アップアイテムを移動させ、私の次の関数では、それはまだそれがあったことをオブジェクトに設定されていることを
function removeFromPlaylist(sender:playlist_content_item) {
if(sender == selectedPlaylistItem) {
//Not sure why this isn't working, but at some point I need to figure it out.
selectedPlaylistItem = null;
trace(selectedPlaylistItem);
削除される前に:
function playlistUp(sender:MovieClip) {
trace(selectedPlaylistItem);
このトレースには元のオブジェクトが表示されます。
誰もがそれがうまくいかない理由を知っていますか?なぜそれが設定された後にそれがnullのままにならないのですか?
おかげ
UPDATE:
は、だから私は、私が起こっているのかを把握できたかどうかを確認するために、これを試してみました:
this.selectedPlaylistItem = null;
trace(selectedPlaylistItem);
setTimeout(function() {trace(selectedPlaylistItem);}, 4000);
しかしトレースは、4秒後に発生したときに、それ直後のトレースではnullと表示されていても、選択されたオブジェクトだと言います。コード内のどこでも見たことがありますが、リセットされる場所はありません。
実際の問題に気付かず、ヌルに設定している部分に多くのエネルギーを集中させていると思います。トレースしていない他のコードによってnullにリセットされている可能性があります。 – jsight
スクリプト全体を投稿してください。それはあなたがそれを長く見てから見ただけの単純なものよりも多いでしょう。 – typeoneerror