Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 09.10.2015, 21:51
Freeman вне форума Посмотреть профиль Отправить личное сообщение для Freeman Найти все сообщения от Freeman
  № 1  
Ответить с цитированием
Freeman
 
Аватар для Freeman

Регистрация: Feb 2014
Сообщений: 56
По умолчанию 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++);
            }
        }
    }


Последний раз редактировалось Freeman; 09.10.2015 в 22:20.
Старый 09.10.2015, 23:45
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 2  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Я дилетант в вопросе внедрения флеша в другие среды, но возможно, вам стоит попробовать считывать переменную не из публичной переменной Main класса, а из:
Код AS3:
this.loaderInfo.parameters["aaa"]
Например, туда передаются внешние переменные, когда флешь встраивается в html страницу браузера.

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

Старый 10.10.2015, 00:00
Freeman вне форума Посмотреть профиль Отправить личное сообщение для Freeman Найти все сообщения от Freeman
  № 3  
Ответить с цитированием
Freeman
 
Аватар для Freeman

Регистрация: Feb 2014
Сообщений: 56
Tails, fscommand понятен, он работает из Flash в окружающую среду, но как бы поменять переменную из окружения..

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

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

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

ЗЫ:

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


Последний раз редактировалось Freeman; 10.10.2015 в 00:19.
Старый 09.10.2015, 23:47
olexandr вне форума Посмотреть профиль Отправить личное сообщение для olexandr Посетить домашнюю страницу olexandr Найти все сообщения от olexandr
  № 4  
Ответить с цитированием
olexandr
 
Аватар для olexandr

Регистрация: Aug 2007
Адрес: Ukraine, Kyiv
Сообщений: 643
Отправить сообщение для olexandr с помощью ICQ Отправить сообщение для olexandr с помощью MSN Отправить сообщение для olexandr с помощью Skype™
Я вот тоже удивился такому способу доступа извне. Вы его сами придумали?
Рекомендую также обратить внимание на ExternalInterface
__________________
сайт, vk

Старый 09.10.2015, 23:50
illuzor вне форума Посмотреть профиль Отправить личное сообщение для illuzor Найти все сообщения от illuzor
  № 5  
Ответить с цитированием
illuzor
 
Аватар для illuzor

Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
Попробуйте ExternalInterface (olexandr опередил)

Старый 10.10.2015, 00:22
illuzor вне форума Посмотреть профиль Отправить личное сообщение для illuzor Найти все сообщения от illuzor
  № 6  
Ответить с цитированием
illuzor
 
Аватар для illuzor

Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
Freeman, всё очень просто гуглится

Старый 10.10.2015, 00:49
Freeman вне форума Посмотреть профиль Отправить личное сообщение для Freeman Найти все сообщения от Freeman
  № 7  
Ответить с цитированием
Freeman
 
Аватар для Freeman

Регистрация: Feb 2014
Сообщений: 56
C# не может обратиться по имени зарегистрированной функции.. нет такого метода..

Старый 10.10.2015, 01:42
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 8  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Цитата:
Сообщение от Freeman Посмотреть сообщение
C# не может обратиться по имени зарегистрированной функции.. нет такого метода..
Метод во флеше зарегистрировали?
http://help.adobe.com/ru_RU/FlashPla...6#addCallback()
__________________
Дети не должны знать о своих родителях

Старый 10.10.2015, 02:10
Freeman вне форума Посмотреть профиль Отправить личное сообщение для Freeman Найти все сообщения от Freeman
  № 9  
Ответить с цитированием
Freeman
 
Аватар для Freeman

Регистрация: Feb 2014
Сообщений: 56
Есть, разобрался. В коде пока бардак.

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

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

Создать новую тему Ответ Часовой пояс GMT +4, время: 09:18.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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