Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   C# и Flash , изменение переменной (http://www.flasher.ru/forum/showthread.php?t=211659)

Freeman 09.10.2015 21:51

C# и Flash , изменение переменной
 
На форме C# есть Flash объект
Загружаю ролик и пытаюсь изменить переменную во Flash.
Ролик загружается нормально, но переменная не реагирует.
В SetVariable игнор, в GetVariable ошибка.

или другой случай Сетом ставлю aaa в 123, Гет возвращает 123, но в самом Флеш ничего не меняется, проверял выводом переменной на экран с инкрементом раз в секунду..

Прошу помощи.

С#
Код:

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            InitializeFlash();
        }

        public void InitializeFlash()
        {
            FlashContainer.Movie = Application.StartupPath+"/bases/Main.swf";
            FlashContainer.SetVariable("aaa","444");
            this.Text = FlashContainer.GetVariable("aaa");
        }
    }

Код AS3:

    package
    {
        import components.Label;
        import flash.display.Sprite;
        import flash.events.MouseEvent;
        import flash.utils.setInterval;
        import system.Links;
        import system.Window;
 
        public class Main extends Sprite
        {
            public var aaa:Number = 0;
            public var label:Label = new Label("Старт", 20, 20);
 
            public function Main()
            {
                Links.stage = stage;
                Window.init();
 
                stage.addChild(label);
                stage.addEventListener(MouseEvent.RIGHT_CLICK, function(e:*):void{});
                setInterval(bbb,1000);
            }
 
            public function bbb():void
            {
                label.text = String(aaa++);
            }
        }
    }


Tails 09.10.2015 23:45

Я дилетант в вопросе внедрения флеша в другие среды, но возможно, вам стоит попробовать считывать переменную не из публичной переменной Main класса, а из:
Код AS3:

this.loaderInfo.parameters["aaa"]

Например, туда передаются внешние переменные, когда флешь встраивается в html страницу браузера.

Если это не сработает, тогда нужно смотреть в сторону:
fscommand или ExternalInterface
Это инструменты флеша для общения с внешней средой.

olexandr 09.10.2015 23:47

Я вот тоже удивился такому способу доступа извне. Вы его сами придумали?
Рекомендую также обратить внимание на ExternalInterface

illuzor 09.10.2015 23:50

Попробуйте ExternalInterface (olexandr опередил)

Freeman 10.10.2015 00:00

Tails, fscommand понятен, он работает из Flash в окружающую среду, но как бы поменять переменную из окружения..

ExternalInterface, вообще меня запутал.)

Цитата:

olexandr, ...Вы его сами придумали?
- Нет, в самом Flash объекте имеется такой метод.
Во всех примерах в поисковике, очень просто описана работа с переменной, через SetVariable, но ничего не выходит =(

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

ЗЫ:

Если что-то даст:
В среде C#, Flash говорит что ExternalInterface.available равен true

illuzor 10.10.2015 00:22

Freeman, всё очень просто гуглится

Freeman 10.10.2015 00:49

C# не может обратиться по имени зарегистрированной функции.. нет такого метода..

Tails 10.10.2015 01:42

Цитата:

Сообщение от Freeman (Сообщение 1187917)
C# не может обратиться по имени зарегистрированной функции.. нет такого метода..

Метод во флеше зарегистрировали?
http://help.adobe.com/ru_RU/FlashPla...6#addCallback()

Freeman 10.10.2015 02:10

Есть, разобрался. В коде пока бардак.

Считывать с флеша смог, в XML формате, буду конвертировать.
Прислать из флеша в C# смог, но пока смог отсеять имя функции, без аргументов.

Появится порядок, выложу код для закрытия темы.


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

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