【问题标题】:AS3 iOS Scrolling with movieclipAS3 iOS 使用movieclip 滚动
【发布时间】:2014-04-03 21:52:40
【问题描述】:

我遇到了这个问题,flash 会返回给我一个 1046:类型未找到或不是编译时常量:mouseY

我正在尝试在已放入容器的单独类中滚动影片剪辑 直到现在都不起作用!

我们将不胜感激!

P.S 我跟着这个教程http://forums.adobe.com/thread/892372

我的卷轴类:

package  {
import flash.events.MouseEvent;
import flash.display.MovieClip;
import flash.events.Event;
import flash.geom.Point;
import flash.ui.Mouse;

public class Scrolling {

    private var Touchscroll:Point = new Point;
    private var completeTween:Boolean;
    private var finalMouseY:int;
    private var mc:MovieClip = IconSpawn.container;
    private var currentY:mouseY = new mouseY;

    public function Scrolling() {
        // constructor code
        mc.addEventListener(MouseEvent.MOUSE_DOWN,onDown1)

    }

    public function onDown1(evt:MouseEvent):void
    {
        completeTween = false;
        //stage.addEventListener(MouseEvent.MOUSE_UP,onUp1);

        MovieClip(evt.currentTarget).addEventListener(Event.ENTER_FRAME,tweenF);
    }

    public function tweenF(e:Event):void
    {
        //var mc:MovieClip = MovieClip(evt.currentTarget);

        if(completeTween)
        {
            mc.y = .5*(mc.y + Math.min(800,finalMouseY));

            if(Math.abs(mc.y - Math.min(800, finalMouseY)) <1)
            {
                e.currentTarget.removeEventListener(Event.ENTER_FRAME,tweenF);
            }

        }
        else
        {
            mc.y = .5*(mc.y + Math.min(800, mouseY));
        }

    }
    public function onUp1(evt:MouseEvent):void
    {
        completeTween = true;
        finalMouseY = currentY;
        stage.removeEventListener(MouseEvent.MOUSE_UP,onUP1);
    }

}

}

修改后的代码:

package  {
import flash.events.MouseEvent;
import flash.display.MovieClip;
import flash.events.Event;
import flash.geom.Point;
import flash.ui.Mouse;

public class Scrolling {

private var Touchscroll:Point = new Point;
private var completeTween:Boolean;
private var startMouseY:int;
private var finalMouseY:int;
private var mc:MovieClip = IconSpawn.container;
//private var CurrentY = mouseY

public function Scrolling() {
    // constructor code
    mc.addEventListener(MouseEvent.MOUSE_DOWN,onDown1)

}

public function onDown1(evt:MouseEvent):void
{
    startMouseY = mouseY;
    completeTween = false;
    stage.addEventListener(MouseEvent.MOUSE_UP,onUp1);

    MovieClip(evt.currentTarget).addEventListener(Event.ENTER_FRAME,tweenF);
}

public function tweenF(e:Event):void
{
    //var mc:MovieClip = MovieClip(evt.currentTarget);

    if(completeTween)
    {
        mc.y = .5*(mc.y + Math.min(800,finalMouseY));

        if(Math.abs(mc.y - Math.min(800, finalMouseY)) <1)
        {
            e.currentTarget.removeEventListener(Event.ENTER_FRAME,tweenF);
        }

    }
    else
    {
        mc.y = .5*(mc.y + Math.min(800, mouseY - startMouseY));
    }

}
public function onUp1(evt:MouseEvent):void
{
    completeTween = true;
    finalMouseY = mouseY - startMouseY;
    stage.removeEventListener(MouseEvent.MOUSE_UP,onUP1);
}

}
}

【问题讨论】:

    标签: ios actionscript-3 flash scroll


    【解决方案1】:

    在您的第 15 行:private var currentY:mouseY = new mouseY; 您已经获取了显示对象的公共属性并试图将其变成一个类。不要那样做!!

    只需将 CurrentY 声明为实例变量。在您的构造函数或更高版本中,设置CurrentY = mouseY

    【讨论】:

    • 现在 Flash 只产生一个 ReferenceError: Error #1065: Variable mouseY is not defined at Scrolling/onUp1() 和 onDown1() 这是我更新的代码
    • 我获得了未定义属性 mouseY、stage 和 onUP1 的访问权限。在第 25、27、48、55、56、56 行
    • 好吧,看看你的代码:你有 stage.addEventListener(MouseEvent.MOUSE_UP,onUp1);然后你有 stage.removeEventListener(MouseEvent.MOUSE_UP,onUP1);乔希,你必须自己做一些工作! mouseY应该没有问题。请再次检查。
    猜你喜欢
    • 2010-11-28
    • 1970-01-01
    • 2015-11-07
    • 1970-01-01
    • 1970-01-01
    • 2021-04-12
    • 2012-04-24
    • 2011-02-24
    • 1970-01-01
    相关资源
    最近更新 更多