Итак, я установил новый Flashvar, который был уникальным идентификатором игрока. Как это:
var flashvars = {};
flashvars.src = '<?= $this->get('link') ?>';
flashvars.playerID = '<?= "flash-".uniqid(); ?>';
var params = {};
params.allowscriptaccess = 'always';
var attributes = {};
attributes.id = '<?= $this->get('attributeId') ?>';
swfobject.embedSWF('<?= $this->get('pluginUrl') ?>/flash/wiredrivePlayer.swf', 'no-flash-content', '100%', '100%', '10.0.0', 'expressInstall.swf', flashvars, params,attributes);
Я тогда установка, которая FlashVar в ActionScript (в Model.as):
// Add into the "Declare private vars" section
private var _playerID:String;
// Add into the private function init(flashvars:Object) section
_playerID = flashvars.playerID;
//Add into the public functions section
public function get playerID():String {
return _playerID;
}
//Add into the public function endOfItem() section
// inform JavaScript that the FLV has stopped playing
ExternalInterface.call("stoppedPlaying", _playerID);
Тогда в JavaScript, теперь у меня есть playerID использовать так:
function stoppedPlaying(playerID)
{
// do something when the FLV starts playing
var playerID = '#' + playerID
jQuery(playerID).css('background','red');
}
Поэтому я просто использую arg playerID вместо (this) в jQuery. Так счастлив!
Итак, как я могу получить ExternalInterface для отправки идентификатора объекта в JS-функцию? Я использую swfObject для динамического встраивания SWF. Поэтому я предполагаю, что это будет связано с настройкой attributes.id. –
Я пытаюсь понять это, используя это возможно: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/external/ExternalInterface.html#objectID –