указать функцию для вызова - PullRequest
0 голосов
/ 11 мая 2011

У меня есть этот скрипт для случайного зацикливания букв ниже.Я хочу, чтобы эта функция выполнялась при определенном щелчке или метке кадра, но когда я вызываю ее с помощью tweenmax, я получаю ошибку во время выполнения.Может кто-нибудь объяснить мне, как вызвать эту функцию на определенных мероприятиях.Я знаю, что это определенно не лучшая практика, но нужно где-то попробовать, и вот что я сделал:

var targetWord:String = 'home';
var wordSoFar:String = '';
var possibleCharacters:Array = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'];
var ticksBetweenLetters:int = 15;
var currentTick:int = 0;


addEventListener(Event.ENTER_FRAME, eFrame);


function eFrame(e:Event):void{
    if(currentTick >= ticksBetweenLetters){
        wordSoFar = targetWord.substr(0, wordSoFar.length + 1);
        currentTick = 0;
        ticksBetweenLetters = int(Math.random() * 15);
        if(wordSoFar == targetWord){
            removeEventListener(Event.ENTER_FRAME, eFrame);
            home.home_title.field.text = targetWord;
            return;
        }
    }

    home.home_title.field.text = wordSoFar + possibleCharacters[int(Math.random() * possibleCharacters.length)];
    currentTick++;    
}

Я хочу, чтобы событие началось, когда я его здесь разместил:

tl.append(TweenMax.from(home.home_title.field, 1, {onStart:eFrame}));

но я получаю это:

ArgumentError: Error #1063: Argument count mismatch on sncc_fla::website_1/eFrame(). Expected 1, got 0.
    at Function/http://adobe.com/AS3/2006/builtin::apply()
    at com.greensock::TweenMax/renderTime()
    at com.greensock::TimelineMax/renderTime()
    at com.greensock.core::TweenCore/setTotalTime()
    at com.greensock::TimelineMax/set currentTime()
    at com.greensock::TweenLite/renderTime()
    at com.greensock.core::SimpleTimeline/renderTime()
    at com.greensock::TweenLite$/updateAll()

1 Ответ

2 голосов
/ 11 мая 2011

Просто сделайте ваш параметр необязательным:

function eFrame(e:Event = null):void {

Вы можете сделать это, потому что вы не используете e в своей функции слушателя.

Другим способом было бы дать TweenMax некоторые параметры для вызова функции.

tl.append(TweenMax.from(home.home_title.field, 1, {onStart:eFrame, onStartParams: [null]}));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...