AS 3.0重复变量定义

时间:2010-01-28 22:50:48

标签: flex flash actionscript-3 actionscript

如何解决重复变量定义的错误?必须有 单独的命名空间和用于每个定义,但我只是没有看到它。

CODE

我没有写这个,但我一直试图解包它并更改类似乎已经打破了它。我想用它来缩放电影的播放时间。这里有很酷的数学时间缩放。

//time-scaling script
import flash.display.*; 
import flash.events.Event.*;

var _time_scale:Number = .25; 
var _frames_elapsed:int = 0; 
var _clip:MovieClip; 

function Main():void { 
            _clip = new SomeClip; 
            addEventListener(Event.ENTER_FRAME, handleEnterFrame);

//integer?? 
function handleEnterFrame(e:Event):void { 
            _frames_elapsed ++; 
}
            // we multiply the "real" time with our timescale to get the scaled time 
            // we also need to make sure we give an integer as a parameter, so we use Math.round() to round the value off 
            _clip.gotoAndStop(Math.round(_clip.totalFrames * _frames_elapsed * _time_scale )); 
}

var myTimer:Timer = new Timer(10);
myTimer.addEventListener(TimerEvent.TIMER, timerListener);
function timerListener (e:TimerEvent):void{
ball1.rotationY += 5;/////////replace function///////////
}
myTimer.start();

错误

**3596**
Warning: Duplicate variable definition.

**1151**
A conflict exists with definition _clip in namespace internal

NOTES

整数,非嵌套循环

2 个答案:

答案 0 :(得分:2)

这是因为你错过了构造函数的结尾“} ”,在这一行之后:

addEventListener(Event.ENTER_FRAME, handleEnterFrame);

以下两行应该在你的构造函数中,而不仅仅是在类声明中:

var myTimer:Timer = new Timer(10);
myTimer.addEventListener(TimerEvent.TIMER, timerListener);

如果您使用的是Timer和TimerEvent类,则应导入它们:

import flash.utils.Timer;
import flash.events.TimerEvent;

此外,您不需要在事件导入结束时使用。*。

另一个“也”。您应该在您的成员上拥有访问修饰符,即。变量和功能。所以你应该说:

private var _clip:MovieClip;

听起来我需要了解AS3的基础知识。这是一个非常好的起点:http://www.actionscript.org/resources/articles/611/1/Getting-started-with-Actionscript-3/Page1.html

答案 1 :(得分:-1)

_clip是保留的关键字,您必须使用其他内容。