0

Flash CS6 を初めて使用して、UDK 用の Scaleform UI を作成しようとしています。私はこの簡単なチュートリアルに従っています: http://goo.gl/yedMU . 私はそれを手紙までたどりましたが、それを機能させることができないようです。新しいプロジェクトでもう一度試してみましたが、同じエラーが発生します。各名前とインスタンスをトリプルチェックしましたが、機能しません。ファイル内の 2 つのフレームの非常に単純なコードを次に示します。

import flash.events.MouseEvent;
import flash.system.fscommand;
import flash.display.MovieClip;

subMenu_btn.addEventListener(MouseEvent.CLICK, subMenu);
exit_btn.addEventListener(MouseEvent.CLICK, exitGame);

var cursor:cursor_mc = new cursor_mc();
addChild(cursor);
     cursor.x = mouseX;
     cursor.y = mouseY;
cursor.startDrag();

stop();

function subMenu(event:MouseEvent):void
{
     gotoAndStop('Sub Menu');
}
function exitGame(event:MouseEvent):void
{
     fscommand('ExitGame');
}

play_btn.addEventListener(MouseEvent.CLICK, playGame);
back_btn.addEventListener(MouseEvent.CLICK, backBtn);

function playGame(event:MouseEvent):void
{
     fscommand('PlayMap');
}
function backBtn(event:MouseEvent):void
{
     gotoAndStop('Main Menu');
}

デバッガーを使用したところ、コードが次の場所で壊れました

exit_btn.addEventListener(MouseEvent.CLICK, exitGame);

何か案は?「戻る」ボタンを使用して最初のフレームに戻るまで、すべてが機能し、「終了」ボタンがなくなってそのエラーが発生します。ただし、「サブメニュー」ボタンは残り、メニューは引き続き操作可能です。

これは、デバッガーを使用したエラーです。

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at Menu_fla::MainTimeline/frame1()[Menu_fla.MainTimeline::frame1:6]
at flash.display::MovieClip/gotoAndStop()
at Menu_fla::MainTimeline/backBtn()[Menu_fla.MainTimeline::frame2:10]
4

2 に答える 2

0

別の解決策は、新しいレイヤーを作成し、そのレイヤーにのみカーソル コードを配置することです。そのレイヤーには 1 つのキーフレームがあり、タイムライン全体をカバーするように拡張されるため、常に有効です。

または、フレーム 1 に存在するメニュー ムービー クリップを作成します。そのムービー クリップ内に、メニューの各部分 (オプションなど) に対して異なるフレームを作成します。また、カーソルはメニュー ムービー クリップと同じレベルに存在します。したがって、常に存在し、一度だけ初期化されます。

于 2012-08-10T21:06:30.143 に答える