AS 3.0 дублирующее определение переменной - PullRequest
1 голос
/ 29 января 2010

Как устранить ошибку, связанную с дублирующимися определениями переменных? Там должен быть отдельные пространства имен и использование для каждого определения, но я просто не вижу его.

КОД

Я не писал этого, но я пытался распаковать его, изменить классы и, похоже, сломал его. Я хочу использовать это для масштабирования времени воспроизведения моих фильмов. Здесь есть крутая математика для масштабирования времени.

//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

ПРИМЕЧАНИЯ

целые числа, не вложенный цикл

Ответы [ 2 ]

2 голосов
/ 29 января 2010

Это потому, что вам не хватает конца "} " конструктора, после этой строки:

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

0 голосов
/ 29 января 2010

_clip - зарезервированное ключевое слово, вам придется использовать что-то еще.

...