Im пытается вызвать функцию (ы) из разных мест. До сих пор не повезло. Это основная функция. Когда я нажимаю кнопку, что-то сделать:AS3 Как вызвать существующую функцию?
button.addEventListener(MouseEvent.CLICK, myFunction1);
function myFunction1(event:MouseEvent):void
{
///dosomeThing1
}
У меня есть более чем на одну кнопку (myFunction2..3 ... 4 ... и т.д.)
, но я хотел бы точно так же (myfunction1. .2 и т. Д.) Происходят, когда я получаю определенное случайное число. Например, если случайное число = 1 >>> сделать myfunction1 , если случайное число = 2 >>> сделать myfunction2
Так я попытался это: (этот код в верхней части timelineframe)
function randomRange(minNum:Number, maxNum:Number):Number
{
return (Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum);
}
var myrandomNumber = (randomRange(1, 6))
trace(myrandomNumber); //A number between 1 and 6
if (myrandomNumber == 1) {
myFunction1(null); // i tried this (null) stuff
}
if (myrandomNumber == 2) {
myFunction2(); // i tried also with just braces
}
т.д.
генерация случайных чисел в порядке, но я получаю сообщение об ошибке все время, когда я хочу, чтобы вызвать функцию (если я дать простую команду >> smthng.gotoAndStop (х) (вместо функции) это нормально)
весь код не находится в шкале времени кадра (без отдельного файла)
если заявления не внутри какой-либо функции, так же, как вы видите здесь, это ~ своего рода «OnLoad» вещи
Функция работает, если я нажимаю на кнопку, так что она не может быть проблемой, я думаю, просто не знаю, как вызвать ту же функцию из другого места?!? :-)
У кого-нибудь есть идеи? Действительно оцените!
Пожалуйста, оставьте примеры! ! (Rookie программист здесь :-)
благодаря Бен
Обновления:
после консультации Neals (спасибо) я попытался это один:
function randomRange(minNum:Number, maxNum:Number):Number
{
return (Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum);
}
var myrandom = (randomRange(1, 6))
trace(myrandom); //A number between 10 and 20
if (myrandom == 1) {
wbtungsten():void{
color2.redOffset = 70;
color2.greenOffset = 0;
color2.blueOffset = -100;
szin_wb_cam.szin_wb.transform.colorTransform = color2;
}
}
if (myrandom == 2) {
// another something
}
и пару строк ниже:
nav_mc.navtungsten.addEventListener(MouseEvent.CLICK, wbtungsten1);
private function wbtungsten1(e:MouseEvent)
{
wbtungsten();
}
В этом случае я получаю следующие ошибки: Сцена 1, уровень «AS3», кадр 2, строка 23 1084: Синтаксическая ошибка: ожидающая правша перед точкой с запятой. Сцена 1, «AS3», рамка 2, строка 21 1078: ярлык должен быть простым идентификатором. Сцена 1, уровень «AS3», кадр 2, строка 22 1084: ошибка синтаксиса: ожидание двоеточия перед точкой.
Какие ошибки вы получаете? Где есть инструкции if? Внутри функции? Это все на временной шкале или в разных файлах .as? Пожалуйста, обновите свой вопрос с помощью этой информации, а не ответьте на этот комментарий. –
Поскольку замена функции другой командой работает, проблема, вероятно, не в том, что вы опубликовали, а скорее в самих функциях. Можете ли вы опубликовать пример этих функций? –
ладно спасибо !!! Я обновил вопрос :-) –