Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   _global (http://www.flasher.ru/forum/showthread.php?t=76756)

CREDO 11.03.2006 19:06

_global
 
Есть 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

Цитата:

Сообщение от CREDO
Вот

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

Fl00r 12.03.2006 01:47

Цитата:

Сообщение от Antares
А что мы там должны увидеть, собственно?

привет от Нурана.

CREDO 12.03.2006 01:51

Цитата:

Сообщение от Antares
А что мы там должны увидеть, собственно?

Привет, который берётся с 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

Цитата:

Сообщение от CREDO
А попробуй загрузить 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

Цитата:

Сообщение от CREDO
Я вообще делаю 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

Видимо так оно и есть.


Часовой пояс GMT +4, время: 01:33.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.