Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Как закрыть блок с флэшкой? (http://www.flasher.ru/forum/showthread.php?t=151217)

lbsdes 24.02.2011 16:03

Как закрыть блок с флэшкой?
 
Через swfobject вставляется флэш ролик, соответственно есть в html див, как сделать, чтобы когда флэш-ролик отыграет, флэшка закрывалась и блок исчезал?

mooncar 24.02.2011 16:07

Например, так:
http://www.flasher.ru/forum/showpost...66&postcount=3
Можно также попробовать и через другие свойства CSS (например, visible), можно менять содержимое флешкиного блока на пустое. Способов много. Только имейте ввиду - лучше работать не с <div>-ом, в который вы внедрили флешку (он как бы исчезает, если не задать атрибут), а с <div>-ом-контейнером вокруг нее.

lbsdes 24.02.2011 16:27

Код AS1/AS2:

 
<div id="zanaves_cont" style="position:absolute; z-index: 10000;">
<div id="zanaves">zanaves</div>
</div>

т.е id="zanaves" - это будет флэшка, внутри контейнера zanaves_cont, который эту флэшку закрывает, правильно или внутри блока zanaves_cont нужно еще делать блок с флэшкой?

mooncar 24.02.2011 20:47

Цитата:

id="zanaves" - это будет флэшка, внутри контейнера zanaves_cont, который эту флэшку закрывает,
начало верное, конец нет. Контейнер ее не закрывает, а содержит, в этом его роль.
По сути блоки id="zanaves_cont" и id="zanaves" целиком относятся к флешке, просто двойная вложенность удобнее для работы. Блок zanaves_cont скрывается вместе с флешкой, которая в нем содержится (она заняла место блока zanaves после внедрения).

Вот еще что. Делайте всё поэтапно. Ничего не меняйте во флешке, а добейтесь простого действия - повесьте на какую-нибудь HTML-ую кнопку функцию JS, скрывающую нужный блок. Когда получится, вызываете её уже с помощью ExternalInterface из флешки.
И пользуйтесь отладочными консолями для сообщений, которые есть во всех приличных браузерах, чтобы видеть сообщения от JavaScript.

lbsdes 02.03.2011 01:34

Вот есть галерея, берутся картинки через xml, которые в папке images лежат, как узнать, когда будет конец анимации с этими картинками, как это узнать?

вот код:
Код AS1/AS2:

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;
}

куда нужно этот код вставить?

Код AS1/AS2:

import flash.external.*;
ExternalInterface.call('closeZanaves');

подскажите пожалуйста?

sltrdn 02.03.2011 12:30

Можно в эту строчку вставить вместо count=0;
Код AS1/AS2:

if (count >= imagesArray.length) count = 0;



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

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