Передать строку из HTML внутри <object>в Actionscript - PullRequest
1 голос
/ 16 апреля 2009

У меня есть флэш-фильм, который используется на нескольких сайтах. На каждом сайте я хотел бы указать другой файл XML внутри разметки. Как мне взять эту строку и использовать ее в ActionScript?

в разметке я хочу сделать это:

<object ...
   <param name=FlashVars value="urlXML=myXML.xml" />
</object>

в Actionscript 3.0, я пытаюсь сделать это:

var urlXML=_root.urlXML;

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

Ответы [ 4 ]

1 голос
/ 17 апреля 2009

Это не то, как вы получаете доступ к FlashVars в AS3. Вам нужно свойство параметра root loaderInfo, в котором хранятся все прикрепленные FlashVars.


var urlXML: String = root.loaderInfo.parameters.urlXML;
0 голосов
/ 19 апреля 2009

Мой первый ответ ... вот так:

У меня есть небольшое приложение для видеопроигрывателя, которое я разработал для выпускников Университета Макгилла. Вы можете видеть это здесь: http://www.alumni.mcgill.ca/esol/holiday/2008/flash.php?giftCode=123456 Он получает «подарочный код» с URL, но вы всегда можете жестко закодировать ваш XML-файл.

Вот объект и код, который я использую:

<embed src="mcgill_annual_fund200903.swf**?giftCode=<?php echo $giftCode; ?>**" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="680" height="550"></embed>

И с помощью сценария вставки .js:

<script type="text/javascript">

AC_FL_RunContent ('codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0','width','680','height','550','src','mcgill_annual_fund200903**?giftCode=**','quality','high','pluginspage',' http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','movie','mcgill_annual_fund200903?giftCode=','wmode','transparent'); // конец кода AC

А затем получить информацию в AS3:

//get the giftCode
var gCode:String;
var giftCode:String;
function loaderComplete(lEvent:Event){
    gCode = loaderInfo.loaderURL;
    giftCode = gCode.substr((gCode.indexOf("?giftCode=")+10));
    //giftCodeTxt.text= giftCode;
}
0 голосов
/ 16 апреля 2009

Он просто должен быть там - вам не нужен _root. Смотрите это .

0 голосов
/ 16 апреля 2009

Примечание: Adobe KB статья

FlashVars должны быть назначены в тегах OBJECT и EMBED для работы во всех браузерах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...