AS3 iOS прокрутка с помощью мувиклипа
Я столкнулся с этой проблемой, что Flash вернет мне 1046: Тип не был найден или не был константой времени компиляции: mouseY
Я пытаюсь прокрутить фрагмент ролика в отдельном классе, который я поместил в контейнер, который до сих пор не работал!
Помощь будет оценена!
PS Я следовал этому уроку 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);
}
}
}
1 ответ
В вашей строке 15: private var currentY:mouseY = new mouseY;
вы взяли открытое свойство Display Object и попытались превратить его в класс. Не делай этого!!
Просто объявите CurrentY как переменную экземпляра. В вашем конструкторе или позже установите CurrentY = mouseY
,