2016-04-25 7 views
0

Я построил топограф в Flash, состоящий из 50 состояний. Для каждого состояния я сделал рамку. Код этих 50 кадров должен быть одинаковым для всех, в то время как графика откладывается. Если я помещаю код в первый из 50 кадров, он работает только там. Если я помещаю код в каждый кадр, я получаю много ошибок, потому что все функции дублируются.Как использовать один скрипт для нескольких фреймов

Есть ли способ для всех 52 кадров для запуска того же кода?

Спасибо за ваше время,

Больше информации:

enter image description here

Красный квадрат указывает на 50 штатов. Это чисто графически. Я сделал отдельный слой для всего кодирования. Синий круг указывает (рабочий) код для одного кадра состояния. Все 50 графических кадров хотят использовать этот код. @Atriace: Ваше объяснение, решая эту проблему?

Спасибо,

Джастин

+0

Обновлено. Я считаю, что это должно ответить на ваш вопрос. Также обратите внимание, что независимо от того, существуют ли кадры (на слое с кодом) до конца USMap, это не важно, а есть ли еще точка чтения в кадре. Я не уверен, что произойдет, если вы пропустите рамку, но я подозреваю, что это провалится. – Atriace

ответ

1

Update

Важно, чтобы быть в курсе с кадрами, что вещи не не существует до тех пор, после того, как они инициализированы. Предположим, что на Frame1 у нас есть синий квадрат, а на Frame2 у нас есть красный круг.

Example

Плей-головка начинается слева и работает свой путь направо. Когда он приходит к каждому кадру, он создает все, что он там находит, будь то символ или код. Это означает, что если мы попытаемся подключить красный круг с прослушивателем событий на Frame1, это не удастся; естественно, потому что красный круг еще не создан.

stop(); 

function hello(e:Event):void { 
    var destination:int = (currentFrame == 1) ? 2 : 1; 
    trace("Hello " + e.currentTarget.name + ": " + currentFrame + " of " + totalFrames + " > " + destination) 
    gotoAndStop(destination) 
} 

BlueSquare.addEventListener("click", hello); 
RedCircle.addEventListener("click", hello); // <<< this will fail 

Однако, если мы положим, что одна линия на том же кадре, когда создается красный круг, он будет ссылаться на hello() правильно и работать.

Example 2

+0

Hey Atriace, спасибо за ваш быстрый ответ! Я редактировал свой пост, так как не уверен, что мы на той же линии. Спасибо за ваше время! –

+0

PS: извините за непрофессиональную правку. –

+0

Еще раз спасибо. Но я думаю, это не моя проблема. Если я скопирую код 50 раз, так что каждый кадр имеет тот же код. Это дает мне ошибку определения одной и той же функции несколько раз. Вы знаете, как это решить? –