У меня есть.fla имя файла тест.fla и у меня есть эта переменная в нем:
import Main;
var my_var;
stage.addEventListener(MouseEvent.CLICK, onLoaded);
function onLoaded(e:Event):void
{
my_var = "Maziar";
//trace(my_var);
}
У меня есть .как файл называется Main.as.
I want to pass my_var from test.fla к основному.as.
Я буду очень признателен, если вы поможете мне в этом деле!
Заметно, что я использовал метод, упомянутый в » Actionscript 3: pass a variable from the main fla to external as file «, но он не работает для меня!!!
Я написал в своем Main.как:
package
{
import flash.display.Sprite;
import flash.geom.Point;
import flash.events.MouseEvent;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.events.Event;
public class Main extends Sprite
{
public function Main()
{
if (stage)
{
init();
}
else
{
addEventListener(Event.ADDED_TO_STAGE, init);
}
addEventListener(Event.ENTER_FRAME, waitForMyVar);
}
private function waitForMyVar(e:Event):void
{
if (my_var != null)
{
trace(my_var);
removeEventListener(Event.ENTER_FRAME, waitForMyVar);
}
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
}
...
}
}
Заранее спасибо!
Важно отметить, что конструктор
Main
в файле документа ActionScript запускается перед кодом, найденным в кадре. При попытке доступа кmy_var
переменной в документе AS она еще не была объявлена в кадре.Итак, нам нужно дождаться Flash, чтобы запустить кадр. Это можно сделать
Event.ENTER_FRAME
с помощью прослушивателя.Образец:
Код Временной Шкалы (.FLA-файл)
Код Документа (.как файл)
В качестве примечания, он появляется
my_var
не присваивается значение, пока пользователь не щелкнул этап. В функции можно выполнить корректировку,waitForMyVar
чтобы дождатьсяmy_var
значения, отличного от null.Образец:
Надеюсь, это поможет!
Используйте статические члены класса.
Тогда в ФЛА: