【问题标题】:AS3 accessing stage from classAS3 从类访问阶段
【发布时间】:2015-11-09 20:10:59
【问题描述】:

时间线代码:

import as3.first;

first._this=this;

var str1:String='this is timeline';

类代码:

package as3 {

import flash.display.MovieClip;

public class first extends MovieClip {

public static var _this:Object;

trace(_this.str1);

}

}

错误信息:

TypeError:错误 #1009:无法访问 null 的属性或方法 对象引用。

试图让我的思想围绕类的工作原理。需要从类中访问时间线函数和变量。我做错了什么,我该如何做?

【问题讨论】:

    标签: class flash stage


    【解决方案1】:

    总而言之,你所做的有些奇怪。可能是,您只想将a document class 用作您的 SWF 根目录?您也可以在您的图书馆中add a class to any movieclip:这两种方式都授予您访问时间线的权限。

    package as3 
    {
        import flash.display.MovieClip;
        public class first extends MovieClip 
        {
            public static var _this:Object;
            trace(_this.str1); // you may place code here... but consider this:
                               // this area is STATIC, the code here 
                               // executes only once when class gets initialized,
                               // so, this happens BEFORE you assign first._this=this;
        }
    }
    

    【讨论】:

    • 我有一个完全在 Flash Pro 中制作的应用程序,不使用类,除了一个名为“AndroidLink”的类,它是 android 原生扩展的一部分(.swc 包含在 .ane 中)。我使用它将字符串从 as3 发送到扩展内的本机 java 代码。我也可以从本机代码接收字符串到 as3,但只能在 AndroidLink 类中。当我收到某些东西时,我需要在时间轴中调用一个或另一个我不知道该怎么做的函数。感谢您尝试帮助我!
    • 想象一下:当用户打开我的应用并点击“新游戏”时,我的 as3 向本机代码发送命令以显示全屏广告。当用户关闭添加时,会触发“onClose”,并且本机代码会向 as3 发送一个字符串。我的 AndroidLink 类接收值为“ad closed”的字符串,然后它需要调用时间轴中的函数“newGame()”。因此出现了“如何从课程中访问时间线”的问题。
    • 在从 java 接收数据时,我会从 AndroidLink 实例(或从类,如果它是静态的)调度一个事件。然后你可以在时间轴中创建一个监听器。为此,您可以遵循有关在 actionscript 中调度事件的众多教程之一。比如这个:code.tutsplus.com/tutorials/as3-101-events-basix--active-10018 或者,您可以从时间线向 AndroidLink 传递一个回调,这样它就可以回电给您。为此,您需要知道如何从时间线代码访问 AndroidLink。后者取决于您的库代码的结构。
    • 再次感谢!调度事件看起来很容易,但它不允许我从静态函数 dispatchEvent()。整个晚上都在想办法解决,到目前为止还没有运气。为什么上课一定要这么难? :(
    • 再过几个小时,仍然一无所获。就像我无法访问舞台一样,我无法从我的 AndroidLink 类调度事件。我猜我对课程的理解太严重了。
    猜你喜欢
    • 1970-01-01
    • 2012-12-09
    • 2016-09-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-29
    • 1970-01-01
    • 2012-11-06
    • 2015-01-13
    相关资源
    最近更新 更多