Просмотр полной версии : Как закрыть блок с флэшкой?
Через swfobject вставляется флэш ролик, соответственно есть в html див, как сделать, чтобы когда флэш-ролик отыграет, флэшка закрывалась и блок исчезал?
Например, так:
http://www.flasher.ru/forum/showpost.php?p=975066&postcount=3
Можно также попробовать и через другие свойства CSS (например, visible), можно менять содержимое флешкиного блока на пустое. Способов много. Только имейте ввиду - лучше работать не с <div>-ом, в который вы внедрили флешку (он как бы исчезает, если не задать атрибут), а с <div>-ом-контейнером вокруг нее.
<div id="zanaves_cont" style="position:absolute; z-index: 10000;">
<div id="zanaves">zanaves</div>
</div>
т.е id="zanaves" - это будет флэшка, внутри контейнера zanaves_cont, который эту флэшку закрывает, правильно или внутри блока zanaves_cont нужно еще делать блок с флэшкой?
id="zanaves" - это будет флэшка, внутри контейнера zanaves_cont, который эту флэшку закрывает,
начало верное, конец нет. Контейнер ее не закрывает, а содержит, в этом его роль.
По сути блоки id="zanaves_cont" и id="zanaves" целиком относятся к флешке, просто двойная вложенность удобнее для работы. Блок zanaves_cont скрывается вместе с флешкой, которая в нем содержится (она заняла место блока zanaves после внедрения).
Вот еще что. Делайте всё поэтапно. Ничего не меняйте во флешке, а добейтесь простого действия - повесьте на какую-нибудь HTML-ую кнопку функцию JS, скрывающую нужный блок. Когда получится, вызываете её уже с помощью ExternalInterface из флешки.
И пользуйтесь отладочными консолями для сообщений, которые есть во всех приличных браузерах, чтобы видеть сообщения от JavaScript.
Вот есть галерея, берутся картинки через xml, которые в папке images лежат, как узнать, когда будет конец анимации с этими картинками, как это узнать?
вот код:
stop();
mc.mcDescriptionBox.titleTxt.embedFonts = true;
mc.mcDescriptionBox.discTxt.embedFonts = true;
Stage.scaleMode = "noScale";
import mx.transitions.Tween;
import mx.transitions.easing.*;
////////////////////////////////////
var imagesArray:Array = new Array();
var titleArray:Array = new Array();
var discArray:Array = new Array();
mcDescriptionBox.discTxt.autoSize = true;
var imagesData:XML =new XML();
imagesData.ignoreWhite = true;
imagesData.onLoad=loadImagesData;
imagesData.load("images.xml");
var count:Number = 0;
var fadeSpeed:Number = 5;
var imageDuration:Number = 5;
var descriptionComeSpeed:Number = 1;
var createImageMC:MovieClip;
var prevMC:MovieClip;
var my_mcl:MovieClipLoader = new MovieClipLoader();
var mclListener:Object = new Object();
mclListener.onLoadProgress = function(target_mc:MovieClip, numBytesLoaded:Number, numBytesTotal:Number):Void {
loadingText._x = imageWidth * 0.5;
loadingText._y = imageHeight * 0.5;
var pctLoaded:Number = Math.ceil(100*(numBytesLoaded/numBytesTotal));
loadingText._visible = true;
loadingText.txt.text = pctLoaded+"%";
};
mclListener.onLoadComplete = function(mc:MovieClip):Void {
loadingText._visible = false;
changeImage();
interval = setInterval(loadImage, (imageDuration*1000));
};
my_mcl.addListener(mclListener);
function loadImagesData():Void {
imageWidth = imagesData.firstChild.attributes.width;
imageHeight = imagesData.firstChild.attributes.height;
fadeSpeed = imagesData.firstChild.attributes.fade;
imageDuration = imagesData.firstChild.attributes.duration;
descriptionComeSpeed = imagesData.firstChild.attributes.textSpeed;
mcDescriptionBox.discTxtBg._alpha = imagesData.firstChild.attributes.textTransparent;
var imagesLength:Number = imagesData.childNodes[0].childNodes.length;
for (var i:Number = 0; i < imagesLength; i++)
{
var imagePath:String = imagesData.childNodes[0].childNodes[i].attributes.path;
var titleText:String = imagesData.childNodes[0].childNodes[i].attributes.title;
var discText:String = imagesData.childNodes[0].childNodes[i].childNodes[0].firstChild.nodeValue;
imagesArray.push(imagePath);
titleArray.push(titleText);
discArray.push(discText);
}
loadImage();
}
function loadImage() {
createImageMC = mcImageHolder.createEmptyMovieClip("imgContener"+count, count);
my_mcl.loadClip(imagesArray[count],createImageMC);
clearInterval(interval);
}
function changeImage() {
var tw:Tween = new Tween(prevMC, "_alpha", Strong.easeOut, 100, 0, fadeSpeed, true);
mcDescriptionBox._x = 0;
mcDescriptionBox.titleTxt.text = titleArray[count];
mcDescriptionBox.discTxt.text = discArray[count];
mcDescriptionBox.discTxtBg._width = imageWidth;
mcDescriptionBox.discTxtBg._height = mcDescriptionBox.discTxt._height+40;
var tw:Tween = new Tween(createImageMC, "_alpha", Strong.easeOut, 0, 100, fadeSpeed, true);
if(imagesData.firstChild.attributes.anim == "1") var tw:Tween = new Tween(mcDescriptionBox, "_y", Strong.easeOut, -mcDescriptionBox._height, -(mcDescriptionBox._height)+mcDescriptionBox._height-5, descriptionComeSpeed, true);
else var tw:Tween = new Tween(mcDescriptionBox, "_y", Bounce.easeOut, -mcDescriptionBox._height, -(mcDescriptionBox._height)+mcDescriptionBox._height-5, descriptionComeSpeed, true);
prevMC = createImageMC;
count++;
if (count >= imagesArray.length) count = 0;
}
куда нужно этот код вставить?
import flash.external.*;
ExternalInterface.call('closeZanaves');
подскажите пожалуйста?
Можно в эту строчку вставить вместо count=0;
if (count >= imagesArray.length) count = 0;
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.