PDA

Просмотр полной версии : _global


CREDO
11.03.2006, 19:06
Есть 2 swf на разнызх доменнах A и B.
А загружает B.
в B скрипт:

System.security.allowDomain("")
_global.i = 5;


Почему, после загрузки B в A _txt.text = _global.i - выдаёт undefined
что может быть?

silin
11.03.2006, 21:09
System.security.allowDomain("*"); ?

CREDO
11.03.2006, 21:25
Да, я смотрел в helpe эти изменения по сравнению с mx. Пробовал ставить звёздочку, но это ни к чему не привело.

Вот как я действовал.

Клип 2, загружает клип 1.

Код клипа 1:

System.security.allowDomain("*");
_global.i = "Привет";


Код клипа 2;

System.security.allowDomain("*");// Уже даже и сюда воткнул эту строку.
loadMovie("http://www.redflame.ru/1.swf", 1);
this.createTextField("text_txt", 0, 50, 50, 200, 200);
mc.onPress = function() {
text_txt.text = _global.i ;
};


И никак не хочет выдавать "привет".
Тестью и на сервере и с локальноко, но никак не получаеться.

CREDO
11.03.2006, 23:47
Неуже ли никто не сталкивался с такой проблемой?

silin
12.03.2006, 00:10
попробовал, действительно не хочет..
но большой пробемы не вижу:
в 1-ом сохраняем в рутеSystem.security.allowDomain("*");
_global.i=_root.i = "Привет";
во 2-ом (при загрузке) пишем в глобал(если уж так нужно чтоб там было):
this.createEmptyMovieClip('mc',0).loadMovie("http://www.redflame.ru/1.swf");
this.onEnterFrame = function() {
if(mc._width){
delete this.onEnterFrame;
text_txt.text=_global.i=mc.i;
}
}

CREDO
12.03.2006, 01:06
:) mc._width - хитрый обработчик, возьму на заметку.
Спасибо.

Antares
12.03.2006, 01:07
Версии роликов не разные? А то будет 2 разных глобала...

CREDO
12.03.2006, 01:13
Нет. всё на 8

CREDO
12.03.2006, 01:28
silin. А этот скрипт, точно рботает, чегото у меня не получается.
Делаю в 8, так как написал.


this.createTextField("text_txt", 3, 50, 50, 200, 200);
text_txt.border = true;
this.createEmptyMovieClip('mc', 0).loadMovie("http://www.redflame.ru/1.swf");
this.onEnterFrame = function() {
if (mc._width) {
delete this.onEnterFrame;
text_txt.text = _global.i=mc.i;
}
}

silin
12.03.2006, 01:34
у меня работает
this.createTextField("text_txt", 3, 50, 50, 200, 200);
text_txt.border = true;
this.createEmptyMovieClip('mc', 0).loadMovie("http://silin.fatal.ru/b.swf");
this.onEnterFrame = function() {
if (mc._width) {
delete this.onEnterFrame;
text_txt.text = _global.i=mc.i;
}
}

Antares
12.03.2006, 01:47
Вот
А что мы там должны увидеть, собственно?

Fl00r
12.03.2006, 01:47
А что мы там должны увидеть, собственно?
привет от Нурана.

CREDO
12.03.2006, 01:51
А что мы там должны увидеть, собственно?

Привет, который берётся с swf, лежащей на другом домене.

Fl00r
12.03.2006, 01:52
Я Привет увидел, а что7

Antares
12.03.2006, 01:52
Я тоже
И кружочек какой-то

CREDO
12.03.2006, 01:56
Дело в том, что вот ещё такой же swf? но он не загружаер привет


разница в скрипте
"http://silin.fatal.ru/b.swf"

меняю на

"http://redflame.ru/b.swf"

silin
12.03.2006, 01:57
А попробуй загрузить http://redflame.ru/b.swf в свой, может у меня сервер пративный?
такая ботва:
*** Security Sandbox Violation ***
SecurityDomain 'http://redflame.ru/b.swf' tried to access incompatible context 'file:///D|/TRUSH/global/a.swf'

CREDO
12.03.2006, 02:04
ты писал так:

System.security.allowDomain("*");
_global.i=_root.i = "Привет";


а сделал так

System.security.allowDomain("*");
this.i = "Привет";


теперь всё работает.
Спасибо

dimarik
13.03.2006, 10:12
Не заметил этот топ и создал другой http://www.flasher.ru/forum/showthread.php?t=76699
Такая же ситуация. Не видно из мувика A объекта в мувике B. Честно сказать, трюк с _root.i = _global.i = "Privet"; не прокатило. Как бы ента дело обрулить?

CREDO
13.03.2006, 10:29
Я вообще делаю i="Привет " и всё отлично работает.

dimarik
13.03.2006, 13:17
Я вообще делаю i="Привет " и всё отлично работает.
А для меня смысл установить _global.i и чтобы его видел мувик А.

Пойду йаду выпью. Просьба тем, у кого получалась фишка с allowDomain, отписаться.

CREDO
13.03.2006, 16:54
Вот именно что даже без _global он увидит i.

Я изначально тоже так думал, в начале темы посмотри, но позже методом тыка вычислил, что i прекрасно работает.


Совет.
Смотри, ты когда загрузишь A в B нажми alt+ctrl+V и посмотри есть там вообще переменные с загруженного клипа.

alt+ctrl+V - выдает все переменные которые использует swf/

dimarik
13.03.2006, 17:28
еще раз повторю, что меня интересует не рутовая переменная i, а глобальная i. Дебаггер 7-ки показавает присутствие _global.i, но это не так. т.е. trace(_global.i) // undefined

dimarik
14.03.2006, 12:40
В общем, никак не получается сдружить две свф из разных доменов, но откомпиленных в одном IDE. Т.е. версия о том, что у разных флэшек под разные проигрыватели разные глобалы - отпадает. Остается как-то повлиять на них через alllowDomain();

dimarik
15.03.2006, 12:32
итак, в ходе исследований выяснилось, что в ЛЮБОМ случае у локального и подгуженного мувика, если у них разные домены, будут и разные _global.
Настройки allowDomain не спасают.

Все свободны.

CREDO
15.03.2006, 12:42
Видимо так оно и есть.