【发布时间】:2016-08-30 15:51:02
【问题描述】:
我试图从不同的地方调用一个函数。到目前为止没有任何运气。 这是基本功能。当我按下按钮时,它会做一些事情:
button.addEventListener(MouseEvent.CLICK, myFunction1);
function myFunction1(event:MouseEvent):void
{
///dosomeThing1
}
我有多个按钮(myFunction2..3...4...等)
但是当我得到一个特定的随机数时,我希望完全相同(myfunction1..2 等)发生。 例如,如果随机数 = 1 >>> 执行 myfunction1 如果随机数 = 2 >>> 执行 myfunction2
所以我尝试了这个: (此代码位于时间轴框架的顶部)
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(x) 命令(而不是函数)就可以了)
整个代码都在时间线框架中(没有单独的文件)
if 语句不在任何函数内部,正如您在此处看到的那样,它是一种“onLoad”的东西
如果我单击按钮,该功能将起作用,所以我猜这不是问题,只是不知道如何从其他地方调用相同的功能?!? :-)
有人有什么想法吗? 真的很感激!
请留下例子! (这里是新手程序员!:-)
谢谢 本
更新:
在尼尔斯的建议(谢谢)之后,我尝试了这个:
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 文件中?请使用此信息更新您的问题,而不是回复此评论。
-
由于用不同的命令替换函数有效,问题可能不在于您发布的任何内容,而在于函数本身。你能发布一个这些函数的例子吗?
-
好的,谢谢!!!我更新了问题:-)
-
请edit您的问题并附上您收到的错误消息。
-
好的,一切都更新了!
标签: function actionscript-3 flash