Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   localconnection для одной флэшки (http://www.flasher.ru/forum/showthread.php?t=175193)

Jex 12.02.2012 01:51

localconnection для одной флэшки
 
Здравствуйте!
На одной странице подгружаются несколько одинаковых флешек с проигрывателем музыки. Для каждой из флешек с помощью flashvars передаются ссылки на треки. После окончания проигрывания трека на одной из флешкек должен начать проигрываться трек на другой.
Я сейчас пытаюсь с помощью localconnection просто включить трек, но увы.

Код AS3:

var channel:SoundChannel = new SoundChannel();
var vol:SoundTransform = new SoundTransform(0, 0);
var sound:Sound = new Sound(new URLRequest(track_url));
 
var receiving_lc:LocalConnection = new LocalConnection();
receiving_lc.connect("lc_name");
function play_next():void
{
        channel = sound.play(0, 1, vol);
}
 
play_button.addEventListener (MouseEvent.MOUSE_DOWN, onPlayButton);
function onPlayButton (event:MouseEvent):void
{
        var sending_lc:LocalConnection = new LocalConnection();
        sending_lc.send("lc_name", "play_next");
}

Кто-нибудь сталкивался с подобной задачей?

Цветкофф 12.02.2012 02:33

Код AS3:

var channel:SoundChannel = new SoundChannel();
var vol:SoundTransform = new SoundTransform(0, 0);
var sound:Sound = new Sound(new URLRequest(track_url));
 
var receiving_lc:LocalConnection = new LocalConnection();
receiving_lc.connect("lc_name");
receiving_lc.play_next = function():void
{
        channel = sound.play(0, 1, vol);
}
 
play_button.addEventListener (MouseEvent.MOUSE_DOWN, onPlayButton);
function onPlayButton (event:MouseEvent):void
{
        var sending_lc:LocalConnection = new LocalConnection();
        sending_lc.send("lc_name", "play_next");
}

не проверял, но на мой взгляд так должно работать

Jex 12.02.2012 13:45

Не работает (

silin 12.02.2012 17:28

не очень понятно, что вы пытаетесь делать
Код AS3:

receiving_lc.connect("lc_name");

это какбы попытка всех повесить на одно LC
к "lc_name" подсоединится только первая флешка, только она и получит send("lc_name", "play_next"), т.е. походу она сама себе же и шлет
чтобы такое реализовать для нескольких флешек, каждая из них должна подсоединиться к уникальному lc_name, ну и если нужно именно ей скомандовать что-то, то на ее lc_name и слать
уникальные id можно раздать, например, через те же флешварсы, ну и список всех участников тоже..

Jex 14.02.2012 13:48

Дык она даже сама от себя ничего не принимает. Даже если она одна на странице. Мне бы хотелось для начала с этим разобраться)
Можете написать несколько работающих строк?)

silin 14.02.2012 14:07

дык г_вопрос
вот работающий пример, сделай чтоб перестало - будем разбираться
Код AS3:

package
{
        import flash.display.*;
        import flash.events.*;
        import flash.net.*;
 
 
        public class Main extends Sprite
        {
                private var lc:LocalConnection;
                private var lcName:String = "blabla";
 
                public function Main():void
                {
 
                        lc = new LocalConnection();
                        lc.client = this;// м.б. в этом дело?
 
 
                        try
                        {
                                lc.connect(lcName);
                        }
                        catch (err:Error)
                        {
                                // вторая не сумееет уже
                                trace( "err : " + err );
 
                        }
                        // на клике смотрим
                        stage.addEventListener(MouseEvent.CLICK, stage_click);
                }
 
 
                private function stage_click(e:MouseEvent):void
                {
                        lc.send(lcName, "lcCommand");
                }
 
                public function lcCommand():void
                {
                        // сама себе шлет..
                        // точно также пошлет и соседу, если тот подключен, канеш
                        trace( "Main.lcCommand" );
 
                }
        }
 
}


Jex 14.02.2012 16:15

Код AS3:

lc.client = this;// м.б. в этом дело?

Да, спасибо!) Я не знал.

Делаю чтоб перестало дальше)


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

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