У меня возникла проблема с передачей значения переменной в родительском скрипте AS3 дочерней swf, вызываемой родителем.Доступ к переменной в родительском скрипте AS3 из дочернего скрипта
У ребенка также есть связанный с ним сценарий AS3.
Это простой пример. Вот родительский скрипт.
package scripts {
import flash.display.MovieClip;
import flash.display.*;
import flash.net.URLRequest;
import flash.events.MouseEvent;
import flash.events.Event;
public class passone extends MovieClip {
public var topVariable;
public function passone() {
var button: buttonMovie = new buttonMovie();
button.x = 300;
button.y = 400;
button.addEventListener(MouseEvent.CLICK, onButtonClicked);
addChild(button);
topVariable = "Parent variable";
}
function onButtonClicked(e: MouseEvent): void {
trace("This is the variable: " + topVariable);
var myLoader: Loader = new Loader();
var url: URLRequest = new URLRequest("PassVariableTest2.swf");
myLoader.load(url);
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
//addChild(myLoader);
function onComplete(e: Event): void {
topVariable = "Parent variable";
addChild(myLoader);
}
}
}
}
Вот код для swf родительских вызовов.
package scripts {
import flash.display.MovieClip;
import flash.text.TextField;
import flash.events.Event;
public class passtwo extends MovieClip {
var topVariable
public function passtwo() {
//var ChildVar = MovieClip(parent.parent).topVariable;
trace("This is being called");
trace("The answer should follow: " +MovieClip(this.parent.parent).topVariable);
//trace(MovieClip(this.parent));
}
}
}
Я пробовал несколько различных конфигураций кода для доступа к переменной из родительского скрипта.
MovieClip(this.parent.parent).topVariable
MovieClip(parent.parent).topVariable
MovieClip(this.parent.parent.parent).topVariable
MovieClip(this.parent).topVariable
Я мог бы использовать некоторую помощь в этом. Я продолжаю получать ошибку # 1009 Не удается получить доступ к свойству или методу ссылки на нулевой объект.
Спасибо за ваш ответ. Это работает. Однако я нашел пару ошибок. В основном скрипте в частной функции onComplete var для приемника должен быть var-приемником: StringReceiver = loaderInfo.content как StringReceiver. В последнем StringReceiver было пространство. И в сценарии StringReceiver общественности набор функций Текст (значение: String) { должны быть общественные функции установить текст (значение: String) { набор был в неправильном месте. Но я понятия не имел, как это сделать без вашей помощи. И для этого я действительно хочу поблагодарить вас за ваш быстрый ответ. –
@DavidYoung мой плохой, я должен был упомянуть, что я просто набрал его в браузере, чтобы дать представление о том, как это решение может выглядеть и не проверять его. Спасибо, что указали эти ошибки, я исправил их в своем ответе. Не стесняйтесь напрямую редактировать сообщения в следующий раз. Редактирование сообщений других людей рекомендуется на этом сайте. Добро пожаловать в stackoverflow =) – null
Я не знал, что смогу изменить ваш ответ. Новое на этом сайте. –