Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   AS3 + GetVariable (http://www.flasher.ru/forum/showthread.php?t=110811)

me2 09.04.2008 16:12

AS3 + GetVariable
 
Вобщем не могу снять JS`ом переменные из ролика, явно что-то изменилось.
В ролике в корне лежит movieClip с именем test и своим собственным классом (TestClass) в котором:
Код:

class TestClass extends MovieClip{
  function TestClass(){
      this.testVar='testVar';
  }
}

А в JS`e:
var testVar=flashObject.GetVariable('test.testVar');
В этоге ругается - мол Unspecified Error

wvxvw 09.04.2008 16:35

А чем EhternalInterface не устроил?

me2 09.04.2008 16:46

а я не знал что это такое, вот теперь читаю. (eXternal)

wvxvw 09.04.2008 18:11

упс, сорри, транслит %)

IYAKOV 26.06.2008 13:02

А и все-таки: какой полный путь переменной в АS3?

Да, подскажите как мне быть:
Я вставил флеш объект в формочку(WinForms,c#) и мне нужно произвести некие манипуляции с данными находящимися во флешке. Дело в том, что сама флешка не знает, когда ей это потребуется. Как тогда поучить доступ в переменным если не через GetVariable?

И еще вопросик:
как вызвать из Флешки функцию находящуюсяя во внешнем приложении?(таже WinForm)
ExternalInterface почему-то не работает. Просто ничего не происходит...
А через fscommand писать не очень хочется. Есть только одна функция и вней куча ифоф не смотрится

о! нашел..
"Note: If you are publishing for Flash Player 8 or later, the ExternalInterface class provides better functionality for communication between ActionScript and VisualBasic, Visual C++, or other programs that can host ActiveX controls."
Но все равно не понял, почему не работает
Код:

package
{
        import flash.display.*;
        import flash.external.*;
        public class main extends Sprite
        {
                public function main():void
                {
                        ExternalInterface.call("AAA");
                        ...

Код:

        private void Form1_Load(object sender, System.EventArgs e)
        {
            axShockwaveFlash1.AllowScriptAccess = "Always";
            axShockwaveFlash1.LoadMovie(0, @"D:\_ngf\main.swf");
           
           
            axShockwaveFlash1.GetVariable("Полныйпуть_к_переменной");//это к первому вопросу
        }
        public void AAA()  //Не вызывается!!!
        {
            ...
        }

П.С.
вот еще было написано, что нужно flash.system.Security.allowDomain(sourceDomain) написать. Но у меня просто приложение! какой может быть домен?

etc 26.06.2008 15:41

Цитата:

Сообщение от IYAKOV (Сообщение 748026)
А и все-таки: какой полный путь переменной в АS3?

Никакой.

IYAKOV 26.06.2008 22:44

Цитата:

Сообщение от __etc (Сообщение 748096)
Никакой.

А как тогда мне получить значение переменной из флешки, если я просто указываю ее имя(в GetVariable) - возникает ошибка!

etc 26.06.2008 23:29

Цитата:

Сообщение от IYAKOV (Сообщение 748219)
А как тогда мне получить значение переменной из флешки, если я просто указываю ее имя(в GetVariable) - возникает ошибка!

В AS3 никак, используйте ExternalInterface. Судя по коду и логике, вы его совершенно неправильно пытаетесь использовать.

IYAKOV 27.06.2008 19:53

Цитата:

Сообщение от __etc (Сообщение 748224)
В AS3 никак, используйте ExternalInterface. Судя по коду и логике, вы его совершенно неправильно пытаетесь использовать.

А подскажите тогда, как его использовать?

у меня получается, что при Любом вызове ExternalInterface.call, приложение обрабатывает событие axShockwaveFlash1_FlashCall. Значит никак вызвать какую либо функцию из внешено приложения нельзя??? с использованием javascript все работает. А тут почему-то нет.

etc 27.06.2008 20:07

Не подскажу, я не писал таких вещей. Мануал точно есть по этому делу.

Опишите событие, обработайте его.


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

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