2013-12-10 5 views
-1

В вспышкой, я создал кнопку и дал кнопку этот код (в AS1-AS2)как изменить ActionScript 1-2 в Actionscript 3

on (release) 
{ 
    gotoAndPlay(5); 
    tellTarget("/Anim") //'Anim' is just short form for 'an animation' 

    { 
     gotoAndPlay(5); 
    } // End of TellTarget 
} 

Поскольку вы не можете дать конкретные кнопки действий в AS3 , Я дал кнопке имя экземпляра (имя экземпляра кнопок теперь «runButton»), а затем решил сделать это на уровне действий.

runButton.addEventListener(MouseEvent.CLICK, startAnimation); 


function startAnimation(event:MouseEvent){ 

    gotoAndPlay(5); 
    tellTarget("/Anim") 
    { 
     gotoAndPlay(5); 
    } // End of TellTarget 

} 

, но он дает мне ошибку, говоря, что «{», как ожидается, после

функции startAnimation (событие: MouseEvent): пустота {

линия, и это говорит, что есть неожиданный '}' в последней строке. Любая идея, как это исправить?

Примечание: Анимация - это мувиклип на главной временной шкале. Когда я дважды нажимаю анимационный мувик, у него есть своя временная шкала. Я хочу, чтобы эта временная шкала играла вместе с основной шкалой времени, следовательно, «gotoandPlay (5), а затем другой gotoAndPlay после выполнения« tellTarget (Anim) ».

+1

Удалить ": void". –

+0

@ArlaudPierre hm, я удалил void, но теперь, когда я нажал кнопку, он не gotoAndPlay (5) – user2817200

+0

Вам нужно добавить событие ПОСЛЕ того, как функция была объявлена ​​или это не имеет никакого смысла. –

ответ

0

Хорошо нашел ответ, получается, что мне нужно изменить

tellTarget("/Anim") //'Anim' is just short form for 'an animation' 

{ 
    gotoAndPlay(5); 
} // End of TellTarget 

просто

Anim.gotoAndPlay(5) 

и он работал.

0

tellTarget является устаревшим, так как Flash 5. (http://help.adobe.com/en_US/as2/reference/flashlite/WS5b3ccc516d4fbf351e63e3d118cd9b5f6e-7a2b.html)

function startAnimation(event:MouseEvent):void{ 
    runButton.gotoAndPlay(5); 

    //that slash in the beginning of name (/Anim) I have no idea what to do with, 
    //basically it used to tell a moveiclip named "/Anim" to "gotoAndPlay" however, 
    //that is an invalid name so you probably have to change the name of it inside 
    //Flash unless I'm missing some kind of awesome legacy from old AS1/AS2. 
    runButton.Anim.gotoAndPlay(5); 
} 
runButton.addEventListener(MouseEvent.CLICK, startAnimation); 
+0

Очень верно, но это не ответ на вопрос. –

+1

Зависит от того, что вы имеете в виду, заголовок говорит «change as1/as2 to as3», вопрос показывает, что некоторый старый as1-код используется в as3, и в вопросе также указывается ошибка компилятора. Кроме того, код содержит проблемы с этой областью, поскольку в AS3 это не то же самое, как в старых версиях AS. –

+0

@DanielMesSer Hm, когда я это делаю, он дает ошибку, говоря: «Свойство gotoAndPlay не найдено на flash.display.SimpleButton и нет значения по умолчанию. На flashFile :: MainTimeline/startAnimation()« – user2817200

1

Использование "с" вместо tellTarget. Но я не рекомендую это вообще. Вместо:

this[ "/Anim" ].gotoAndPlay(5); 
+0

Хм, когда я это делаю, он говорит: «Термин не определен и не имеет свойств. на flashFile :: MainTimeline/startAnimation() ' – user2817200

+0

возможно потому, что/Anim является недопустимым именем для экранного объекта. Вероятно, называется Анима. Убедитесь, что он существует в тот момент, когда вы используете этот код. – Discipol

1

Подобный ответ Discipol в том, что я думаю, что вам нужно, чтобы бросить в кино клип первый:

MovieClip(this[ "/Anim" ]).gotoAndPlay(5); 
+0

hm, когда я это делаю, он говорит: «Невозможно получить доступ к свойству или методу ссылки на нулевой объект. at flashFIle :: MainTimeline/startAnimation ' – user2817200

+1

is'/Anim ', расположенный на корневой шкале времени? На следующем созерцании я верю, что правильной командой будет: 'MovieClip (this.getChildByName ('/ Anim')). GotoAndPlay (5)' – milks

+0

'/ Amim' находится внутри спрайта. В основном, когда вы нажимаете runButton, я хочу, чтобы временная шкала играла с 5 (gotoAndPlay (5)), и я хочу, чтобы спрайт также играл на своей временной шкале. Спрайт является графическим. (Я на самом деле работаю отладкой/переключением предыдущих сотрудников с AS1-2 на AS3, поэтому я не совсем понимаю, что происходит, но я пытаюсь объяснить это наилучшим образом. Сообщите мне, mcllear или если для ответа требуются дополнительные вопросы. – user2817200

Смежные вопросы