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

时间:2015-02-18 06:15:46

标签: actionscript-3 flash-cs6

我想为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");

    }

1 个答案:

答案 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");
    }
}