Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Неподъёмная проблема !!! (http://www.flasher.ru/forum/showthread.php?t=36428)

SphinX 29.08.2002 09:07

Неподъёмная проблема !!!
 
Долго думал куда же спрашивать в СЮДА или в Advanced, дык вот ...
Есть swf'ка в ней зашит класс примерно такой:
Код:

Class = function()
{
  trace("construction ...");
  this.method = function()
  {
      trace(str);
// в текущем ролике в обьекте _global переменной "str"
// не существует, зато когда мы методом loadMovie("эта swf'ка")
// загрузим её в другую, то там она будет. Я её созам Ж)
  }
}

на деле ничего не получается:
1) компилирую swf'ку с классом
2) создаю другую, с глобальной переменной str
Код:

_global.str = "some string";
3) методом loadMovie загружаю в неё swf'ку с классом
4) выполняю код:
Код:

c = Class();
c.method();

5) и нифига, вывод который должен быть:
Код:

construction ...
some string

вывод который есть:
Код:

construction ...
undefined

исходники не выкладываю, потому что самим быстрее написать

поможите :(

DeliMIter 29.08.2002 15:54

c = new Class();

SphinX 29.08.2002 16:41

... согласен, но это у меня в топике ошибка, а не в исходнике ...
если бы решение лежало так близко, было бы просто офигительно ...

C2Plus 29.08.2002 16:54

а если попробовать trace(_global.str) ?

C2Plus 29.08.2002 17:07

_global.str = "123";
loadMovie("gl.swf", this);


gl.swf:

class = function(){
trace ("created")
this.tr = function(){
trace("str:" add str);
}
}

a = new class();

a.tr();

stop();

это у меня работает как надо.

SphinX 29.08.2002 18:34

... хе хе хе , всё не так просто, ВАШ код, товарищь:
Код:

a = new class();
a.tr();

мне надо вызвать не в gl.swf а в ролике в котором он(gl.swf) загружается ...

Nox Noctis 29.08.2002 19:25

пока не понятно ЧТО ты делаешь :)

конкретно - куда грузишь ? (в какой таргет или слой ?)
и где пишешь скрипт "c = Class(); c.method();" ?

SphinX 29.08.2002 19:58

первый мовик - one.swf сюда грузим
второй мовик - two.swf контейнер нашего класса "Class"

из one.swf я гружу two.swf в пустой мовиклип с названием "m"
или так:
содержание two.swf станет содержанием мовика "m" из one.swf
допустим я смог отловить событие загрузки two.swf в one.swf
и смог выполнить (как обработчик события) некую процедуру
эта процедура запускается из one.swf
Код:

//для one.swf
_root.m.loadMovie("two.swf");
_root.m.onLoad = function()
{
  _global.str = "some_string";
  c = new _root.m.Class();
  c.method();
}

доступ к классу Class должен появиться после загрузки two.swf
так как этот класс там содержится:
Код:

//для two.swf
_global.Class = function()
{
  trace("construction ...");
  this.method = function()
  {
      trace(str);// или trace(_global.str); - не важно
  }
}

грубо говоря, загрузкой two.swf я хочу сэмулировать объявление
глобального класса "Class" в one.swf,
но чтобы этот класс имел доступ к
глобальным переменным мовика one.swf


желаемый вывод:
Код:

construction ...
some_string

дурацкая реальность:
Код:

construction ...
undefined


Nox Noctis 29.08.2002 21:02

Вложений: 1
лажа :)
то ли я тебя не понял, то ли там ошибок больше чем строчек :)

вот файлики :) все работает вроде...
если это то, что нужно - то давай свой исходник и посмотрим где там ошибки... в письменном виде исходник не воспринимается...

SphinX 29.08.2002 21:10

где же люди такие Афоризмы берут, я про слова-дела
исходники смотрю, потом отвечу ...


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

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