AS3 に触れてから数年が経ちましたが、少しスクリプトが必要なプロジェクトがあります。
一般的な開く/閉じるボタンに応じて、目次メニューを下にスライドさせてから上にスライドさせようとしています。概念は、jQuery で .slideToggle() を使用する場合と同じです。
インスタンス名を指定して MovieClip を作成し、ライブラリで ActionScript 用にエクスポートしましたが、何らかの理由で、メソッドを実行して 325 ピクセル下に移動しようとすると、次のエラーが発生し続けます。
1046: 型が見つからないか、コンパイル時の定数ではありません: toc.
ライブラリに何かの参照が欠落していることに気付きましたが、MC にはインスタンス名があり、AS 用にエクスポートされているため、それが何であるかについて少し戸惑っています。私のスクリプトはすべてフレーム 1 にあり、外部クラスは使用していません。どんな助け/ポインタも大歓迎です!! コードの下部にある電子メールリンクを作成しようとすると、同じ問題が発生します。
繰り返しますが、どんな助けでも大歓迎です!! ありがとう!!
import flash.events.MouseEvent;
import flash.display.MovieClip;
import flash.display.SimpleButton;
// Initial load elements
gotoAndStop("Frame1");
UpdateFrame();
// Mouse events
btnNextSlide.addEventListener(MouseEvent.CLICK, NextSlide);
btnPrevSlide.addEventListener(MouseEvent.CLICK, PrevSlide);
btnTOC.addEventListener(MouseEvent.CLICK, ShowToC);
//btnDifferenceLink.addEventListener(MouseEvent.CLICK, Email);
// Various Methods
function NextSlide(event:MouseEvent):void
{
// find current slide, go to next slide
var currentFrame = this.currentFrame;
var nextFrame = currentFrame + 1;
if (int(nextFrame) == this.totalFrames)
{
// stop
gotoAndStop("Frame" + this.framesLoaded);
}
else
{
// go to next slide
gotoAndStop("Frame" + nextFrame);
}
// go to and stop at the next frame
UpdateFrame();
}
function PrevSlide(event:MouseEvent):void
{
// find current slide
var currentFrame = this.currentFrame;
var prevFrame = currentFrame - 1;
if (int(prevFrame) == 1)
{
// stop
gotoAndStop("Frame1");
}
else
{
// go to next slide
gotoAndStop("Frame" + prevFrame);
}
// go to and stop at the next frame
UpdateFrame();
}
function UpdateFrame():void
{
txtCurrentSlide.text = this.currentFrame.toString();
}
function Email():void
{
var email:URLRequest = new URLRequest("mailto:emailaddress");
navigateToURL(email, "_blank");
}
function ShowToC():void
{
// slide Table of Contents down
toc.y = 325;
}
function HideToC():void
{
// slide Table of Contents up
toc.y = -325;
}