as3 中的可滚动 activity 不适用于 android air

scrollable activity in as3 is not working perfect for android air

我想为 android 版本制作特定数学书的可滚动索引,我可以在其中滚动由 56 个子动画片段组成的影片剪辑(有第 1 章到第 56 章的子剪辑已经制作"buttons_all" 父剪辑),当我选择一个子影片剪辑时,它将转到 selected 标签或章节(假设如果我单击第 1 章影片剪辑,它将转到并播放("chapter 1"))。我已经使父影片剪辑可滚动并向每个子影片剪辑添加了事件侦听器..但是当我想要滚动时它正在做两件事,首先它滚动然后转到我点击开始滚动的 "chapter" 我是否想要转到本章或 not.to 解决我添加了一个计时器事件以创建一个间隔以在我想 select 特定章节之前立即停止 selecting 章节..但它正在工作 partially.i 想将此间隔添加到每个 button.because 我这里没有上下滚动条..请帮我解决这个问题..这是我的代码部分

 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");

    }

首先,我建议您将所有矢量图像转换为光栅图像。处理器很难为矢量图像设置动画。

删除 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");
    }
}