2015-01-17 1 views
0

Я довольно новичок в ActionScript 3, но я над этим работаю и пытаюсь учиться, читая и изменяя исходные коды ActionScript.Actionscript 3 - Передача одной переменной из одного объекта в другой в том же проекте

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

Ситуация:

Я получил один «объект», который является интерактивным и дает случайное значение, которое также сохраненное в переменной. У меня есть еще один «объект», который делает то же самое, но имеет другое имя. Я хочу, чтобы переменная от первого объекта передавалась ко второму, как я могу это сделать?

+0

Можете ли вы опубликовать код для нас, чтобы понять? Имея ограниченную информацию - первый объект доступен по клику, поэтому вы можете иметь eventlisteners. Получить другой объект для прослушивания и захвата данных? – sabkaraja

+0

Вы в основном говорите, хотите, чтобы оба объекта делили это значение и разрешили либо установить его на новое значение? – null

+0

Я добавил исходники сейчас;) – FlashNewbie

ответ

0

Один из способов передачи значений зависит от использования ссылок на объекты ...

// mc1 and mc2 exist as movieclips on the stage 

mc1.addEventListener(MouseEvent.CLICK, onClick); 
mc2.addEventListener(MouseEvent.CLICK, onClick); 

function onClick(event:MouseEvent):void 
{ 
    // reference clicked movieclip through click target 
    var mc:MovieClip = event.target as MovieClip; 

    // if our clip matches one, assign the other clip the value. 
    if (mc === mc1) 
    { 
     mc2.value = mc.value; 
    } 
    else if (mc === mc2) 
    { 
     mc1.value = mc.value; 
    } 
} 

Там в тысячу способов, чтобы пройти ссылки вокруг, и это только один.

0

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

У меня есть эти два объекта. Когда я нажимаю на одном из объектов (который является DICE), это дает мне этот код в основном

var faceValue:int = 6; 

// Add mouse click functionality to roll the die 
addEventListener(MouseEvent.CLICK, onClickDie, false, 0, true); 
mouseChildren = false; 
buttonMode = true; 

function onClickDie(e:MouseEvent):void { 
    removeEventListener(MouseEvent.CLICK, onClickDie); 
    buttonMode = false; 

    // Initiate the roll-out sequence 
    if(faceValue == 6) { 
     gotoAndPlay("rollout6"); 
     etc... 

Тогда где-то в кадре, где он кружится костью он рандомизация номера и сохранить его в номинальную стоимость

// Calculate a random face value between 1 and 6 
faceValue = 1 + Math.floor(Math.random()*6); 

// Initiate the roll-in sequence 
if(faceValue == 6) { 
    gotoAndPlay("rollin6"); 
    ...etc 

Теперь, как я могу получить рандомизированное граничное значение от вращения кадра кости, чтобы передать его другим кубикам?

Смежные вопросы