我想为Android版制作一个特定数学书的可滚动索引,其中我将能够滚动一个由56个儿童动画片段组成的影片剪辑(第1章到第56章子剪辑已经制作了“buttons_all”parentclip)和当我选择一个儿童电影剪辑时,它将转到选定的标签或章节(假设如果我点击第1章影片剪辑它将gotoAndPlay(“第1章”))。我已经使父动画片段可滚动并为每个儿童电影添加了eventlistener剪辑..但是当我想要滚动它是做两件事,首先它滚动然后转到我点击开始滚动的“章节”是否我想要去本章或不解决。我添加了一个计时器事件到创建一个间隔,在我想要选择一个特定章节之前立即停止选择章节..但它正在部分工作。我想将此间隔添加到每个按钮。因为我这里没有滚动条上下..请帮助我解决这个问题......我的代码部分是
var pat1:MovieClip = scrolling_manu.buttons_all.part1;
var listTimer:Timer; // timer for all events
var tapDelayTime:Number = 0;
var maxTapDelayTime:Number = 20; // change this to increase or descrease tap sensitivity
var tapEnabled:Boolean = false;
init();
function init()
{
//removeEventListener(Event.ADDED_TO_STAGE, init);
pat1.addEventListener(TouchEvent.TOUCH_BEGIN, onmouseDown );
//trace("hit");
pat1.addEventListener(TouchEvent.TOUCH_END, onmouseUp );
listTimer = new Timer( 33 );
listTimer.addEventListener( TimerEvent.TIMER, onListTimer);
listTimer.start();
}
function onmouseDown( e:TouchEvent ):void
{
handleItemPress()
}
function onmouseUp( e:TouchEvent ):void
{
onTapDisabled();
//listTimer.stop();
}
function onListTimer(e:Event):void
{
// test for touch or tap event
if(tapEnabled)
onTapDelay();
}
function onTapDisabled():void
{
tapEnabled = false;
tapDelayTime = 0;
}
function onTapDelay():void
{
tapDelayTime++;
if(tapDelayTime > maxTapDelayTime )
{
//tapItem.selectItem();
tapDelayTime = 0;
tapEnabled = false;
trace("hit");
pat1.gotoAndPlay("over1");
pat1.addEventListener(TouchEvent.TOUCH_END, onmouseUp );
}
}
function handleItemPress()
{
tapDelayTime = 0;
tapEnabled = true;
trace("hit");
}
答案 0 :(得分:0)
首先,我建议您将所有矢量图像转换为栅格。处理器很难为矢量图像制作动画。
删除drop_me
功能后的所有代码。
写下这个:
scrolling_manu.buttons_all.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin);
scrolling_manu.buttons_all.addEventListener(TouchEvent.TOUCH_END, onTouchEnd);
var touchedPart:MovieClip;
var posY:int;
function onTouchBegin(event:TouchEvent):void
{
touchedPart = event.target as MovieClip;
posY = scrolling_manu.buttons_all.y;
}
function onTouchEnd(event:TouchEvent):void
{
// if list was been moved, that isn't a tap.
if (posY == scrolling_manu.buttons_all.y)
{
trace("part tapped", touchedPart.name);
touchedPart.gotoAndPlay("over1");
}
}