如何从AS3中的时间线访问文档类的属性?

时间:2010-02-28 23:20:15

标签: actionscript-3 class properties document timeline

我正在为网页构建标准幻灯片闪存标题。

主要有三个部分:

  • 幻灯片课程
  • 用作项目文档类
  • 的控制器类
  • 部分链接时间轴代码

幻灯片类具有所有功能,因此我使用Document类创建幻灯片的新实例,并保留一个名为slideshow的属性变量,以保持对幻灯片实例的引用。

import flash.display.MovieClip;
import flash.events.Event;

public class Header extends MovieClip
{
    public var slideshow:Slideshow;
    public function CSYC_Header()
        {
            var picturesURL:String = "images/pictures.xml";
            var picturesURLFVar:String = root.loaderInfo.parameters.pictures;
            picturesURL = picturesURLFVar ? picturesURLFVar : picturesURL;
            slideshow = new Slideshow(picturesURL, Slideshow.FADE);             
            slideshow.init();
            addChild(slideshow);
        }

    public function hello():void{trace("Hello");}
}

我现在的下一步是使用Adobe Flash Professional绘制一些播放和停止按钮,然后链接其点击事件以调用slidshow.play()/。pause()。此代码只位于时间轴中:

import flash.events.MouseEvent;

pause_control_btn.addEventListener(MouseEvent.CLICK, pauseClicked);
play_control_btn.addEventListener(MouseEvent.CLICK, playClicked);
addChild(pause_control_btn);
addChild(play_control_btn);

function pauseClicked(e:MouseEvent):void 
{
    //the play and pause buttons are on the stage and have the following names as
    // thier instance names: pause_control_btn, play_control_btn
    pause_control_btn.alpha = 0;
    play_control_btn.alpha = 0.37;
    slideshow.pause();
}

function playClicked(e:MouseEvent):void 
{
    pause_control_btn.alpha = 0.37;
    play_control_btn.alpha = 0;
    slideshow.play();
}

尽管我能够从时间轴调用Doc类中的常规方法,但是如果没有出现以下错误,我就无法调用属性,例如当我说幻灯片放映时:(

1061: Call to a possibly undefined method play through a reference with static type com.example.test:Slideshow.

所以我错过了一些明显的东西,或者每次我想连接一个事件来调用我的文档类中的对象时,我是否必须在我的文档类上创建一个方法?

1 个答案:

答案 0 :(得分:1)

没有必要为时间线上的按钮添加代码;您可以通过Document Class中的实例名称引用这些对象。这是最简单的解决方案,我认为完全避免了时间表。

否则可能调用parent.slideshow或root.slideshow(虽然我认为root是AS2,我不太记得)会让你从时间轴访问该实例。前一个选项可能仍然是更好的选择,并将您的代码保存在一个位置。

希望有所帮助。