2013-07-22 1 views
4

Я пытаюсь загрузить 3 разных ключа в 3 разных контейнерах. Когда я удалить эту строку:URLRequest несколько ссылок SWF не работают должным образом

loader2.load(new URLRequest("http://tickers.playtech.com/jackpots/new_jackpot.swf?casino=cityclub&info=1&game=bl&font_face=Arial&bold=true&font_color=FFFFFF&bg_color=240000&font_size=24&currency=eur")); 
loader3.load(new URLRequest("http://tickers.playtech.com/jackpots/new_jackpot.swf?casino=cityclub&info=1&game=bl&font_face=Arial&bold=true&font_color=FFFFFF&bg_color=240000&font_size=24&currency=eur")); 

и загружать их по отдельности, они прекрасно работает:

enter image description here

, но когда я загрузить их вместе, так же, как написано в this document в саман, все три линеечки показывая тот же номер:

enter image description here

package {  
import flash.display.MovieClip; 
import flash.net.URLRequest; 
import flash.display.Loader; 


public class importExternalSWF extends MovieClip { 
    private var loader:Loader = new Loader(); 
    private var loader2:Loader = new Loader(); 
    private var loader3:Loader = new Loader(); 

    public function importExternalSWF() { 
     loader.load(new URLRequest("http://tickers.playtech.com/jackpots/new_jackpot.swf?casino=cityclub&info=1&game=mrj-4&font_face=Arial&bold=true&font_color=FFFFFF&bg_color=240000&font_size=24&currency=eur")); 
     loader2.load(new URLRequest("http://tickers.playtech.com/jackpots/new_jackpot.swf?casino=cityclub&info=1&game=bl&font_face=Arial&bold=true&font_color=FFFFFF&bg_color=240000&font_size=24&currency=eur")); 
     loader3.load(new URLRequest("http://tickers.playtech.com/jackpots/new_jackpot.swf?casino=cityclub&info=1&game=grel&font_face=Arial&bold=true&font_color=FFFFFF&bg_color=240000&font_size=24&currency=eur")); 

     ticker1.addChild(loader); 
     ticker1.width=50; 
     ticker1.height=20; 

     ticker2.addChild(loader2); 
     ticker2.width=50; 
     ticker2.height=20; 

     ticker3.addChild(loader3); 
     ticker3.width=50; 
     ticker3.height=20;  
     } 
    } 
} 

Я не могу найти выход в любом месте

Благодаря

редактировать я переписать свой код к этому, и его все тот же результат

public class importExternalSWF extends MovieClip { 

    public function importExternalSWF() { 

     var url = "http://tickers.playtech.com/jackpots/new_jackpot.swf"; 
     var urlParams:Array = ["grel", "bl", "game=mrj-4"]; 
     var tickers:Array = [ticker1, ticker2, ticker3]; 
     var tickerHeight:Number = 50; 
     var tickerWidth:Number = 50; 

     loadUrls(); 

     function loadUrls():void { 

      for(var i:uint = 0; i<urlParams.length; i++) 
      { 
       var urlLoader = new Loader(); 
       var flashvars:URLVariables = new URLVariables(); 
       flashvars["casino"] = "cityclub"; 
       flashvars["info"] = "1"; 
       flashvars["game"] = urlParams[i]; 
       flashvars["currency"] = "eur"; 
       flashvars["font_face"] = "arial"; 
       flashvars["bold"] = "true"; 
       flashvars["font_size"] = "10"; 
       flashvars["bg_color"] = "0x000000"; 
       flashvars["font_color"] = "ffffff"; 

       var request:URLRequest = new URLRequest(url); 
       request.data = flashvars; 
       urlLoader.load(request); 

       tickers[i].width=tickerWidth; 
       tickers[i].height=tickerHeight; 
       tickers[i].addChild(urlLoader); 
      } 
     } 
    } 
+0

Параметр «para» влияет на SWF? Я не думал, что вы можете передавать параметры непосредственно в SWF. Почему вы дважды передаете аргумент para? – JeffryHouser

+0

, что SWF должен иметь параметры для правильной работы. как вы видите на изображениях, работает, но только отдельно. при его объединении последняя ссылка отменяет предыдущую загрузку URL-адреса. –

+1

Как выглядит остальная часть кода? как вы справляетесь с полной загрузкой? –

ответ

0

Там не было никакого решения этой проблемы из-за отсутствие совместимости с третьей частью компании, которая обеспечивает линеечки.

3

Я подозреваю, что внешний SWF-файл устанавливает некоторые переменные на уровень корня. Поэтому каждая загрузка будет переопределять предыдущие значения, и вы получите тот же результат во всех «тикерах».

Скорее всего, это вмешательство может быть разрешено путем загрузки каждого SWF в его собственный ApplicationDomain. По умолчанию SWF загружаются в тот же ApplicationDomain и делятся своим кодом.

Так вместо того, чтобы сделать это:

urlLoader.load(request); 

Вы должны сделать soemthing так:

// create a new LoaderContext with a spearate ApplicationDomain 
var context:LoaderContext = new LoaderContext(false, new ApplicationDomain()); 

// load the request and use the context with the separate ApplicationDomain 
urlLoader.load(request, context); 
+0

Это то, что я, я попробую завтра утром, и я обновлю. большое спасибо. –

+0

его не работает по какой-то причине, результат тот же, но его должно быть направление –

3

У меня плохие новости, я попробовал все, но я не могу правильно загрузить файлы швейцарских франков , Итак, я начал исследовать это, и я обнаружил, что во-первых, ваш SWF имеет формат AVM1Movie (new_jackpot.swf), поэтому я пришел к выводу, что этот SWF был создан с версией 1 или 2 ActionScript. Если вы видите ссылку на AVM1Movie класса (здесь link), говорит следующее:

Есть несколько ограничений на файл AVM1 SWF, загруженного AVM2 SWF файла:

  • Файл SWF AVM1, загружаемый SWF-файлом AVM2, не может загружать в него еще один SWF-файл. То есть, он не может загружать другой файл SWF поверх себя. Тем не менее, в него могут загрузиться объекты дочернего объекта Sprite, объекты MovieClip или другие SWF-файлы AVM1, загружаемые этим SWF-файлом.

Затем я попробовал тоже, с библиотекой, которая реализует Темы Flex, и нашел (здесь эту ссылку async-threading):

  • Actionscript Virtual Machine (AVM) в Flash Player сильно ограничена только одним потоком ...

Я создал несколько проектов с использованием погрузчиков, SWFLoaders, ByteArray, и т.д., все это в ActionScript 3 в Flex SDK 3.2. Возможно, если вы создадите этот проект в предыдущей версии, это может сработать или попытаться использовать ту же библиотеку, которая реализует потоки.

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

+0

Хорошая информация. Кажется, попросителю было бы проще реализовать такой тикер/счетчик. – bummzack

+0

Спасибо за информацию. Я попробую предложения. @ bummzack Я думал об этом, но «тикер» предоставляется сторонней компанией, мы не получили доступа к их данным. –

2

Попробуйте добавить 1 после «laoder» в этих местах:

private var loader:Loader = new Loader(); 


loader.load(new URLRequest("http://tickers.playtech.com/jackpots/new_jackpot.swf?casino=cityclub&info=1&game=mrj-4&font_face=Arial&bold=true&font_color=FFFFFF&bg_color=240000&font_size=24&currency=eur")); 
+0

вы можете увидеть мое редактирование, которое я написал несколько дней назад, я переписал свой код, затем –

Смежные вопросы