0
죄송합니다.이 질문이 다소 모호하지만 최근에 이런 일이 발생했습니다. 너무 복잡한 것은 아니지만 원하는 것은 수식의 영향을받는 변수 'targetVariable'입니다. 실제 문제는이 경우 'masterVolume'인 참조 된 변수가 수식의 영향을받지 않고 대신 'targetVariable'이라는 사실에 있습니다. 스크립트 하단에 'makeSlider'기능이 실행됩니다.함수 매개 변수를 사용하여 변수를 참조하려면 어떻게해야합니까?
var masterVolume:Number = 0;
var panning:Number = 0;
function makeSlider(sliderType, X, Y, targetVariable) {
var sliderHandle:MovieClip = new sliderType();
addChild(sliderHandle);
sliderHandle.x = X;
sliderHandle.y = Y;
var dragging:Boolean = false;
stage.addEventListener(Event.ENTER_FRAME, updateSlider);
function updateSlider(e:Event):void {
panning = (mouseX/(stage.stageWidth/2))-1;
targetVariable = ((sliderHandle.x-bar.x)/bar.width);
output.text = masterVolume.toString();
if (dragging == true && mouseX >= bar.x && mouseX <= (bar.x + bar.width)) {
sliderHandle.x = mouseX;
}
}
sliderHandle.addEventListener(MouseEvent.MOUSE_DOWN, beginDrag);
function beginDrag(e:MouseEvent):void {
dragging = true;
}
stage.addEventListener(MouseEvent.MOUSE_UP, endDrag);
function endDrag(e:MouseEvent):void {
dragging = false;
}
}
function playSound(target, intensity:Number, pan:Number) {
var sound:Sound = new target();
var transformer:SoundTransform = new SoundTransform(intensity, pan);
var channel:SoundChannel = new SoundChannel();
channel=sound.play();
channel.soundTransform = transformer;
}
stage.addEventListener(MouseEvent.MOUSE_DOWN, make);
function make(e:MouseEvent):void {
playSound(test, masterVolume, panning);
}
makeSlider(SliderHandle, bar.x, bar.y, masterVolume);
프리미티브 (숫자, 정수 등)는 모두 값으로 전달됩니다. 당신이 얻으려고하는 것은 참조로 전달하는 것입니다. 그것을 얻으려면 객체를 전달해야합니다. – meddlingwithfire