Загрузить веб-страницу внутри Flash

Статус
В этой теме нельзя размещать новые ответы.
Сразу бы сказал что нужно в виде приложения.
Это возможно. Юрзай MDM Zinc (это прога по превращению флэхи в продвинутое приложение), он может загрузить htm пользуясь браузером по умолчанию во флэшку.
Zinc вообще довольно много чего может. Так что если очень надо бери его мануал (на инглише) и изучай синтаксис.
 
Спасибо, поизучаем MDM Zinc :)
 
gregzem, ну если вы не нашли как, это не значит что это невозможно

вот скрины

snap037pf3.jpg


snap038jj8.jpg


Файл можно взять здесь
Для просмотра ссылки Войди или Зарегистрируйся

оригинал
Для просмотра ссылки Войди или Зарегистрируйся

Только в FF и последней версии флеша нужно разрешить загружать сторонние iframe'ы. Видимо убрали из-за потенциальной небезопасности

Как они это сделали там - разбирайтесь сами.

Там вот есть такой код
Код:
on (release)
{
    iframeLoad("iframe_1", "transparent.html");
}

И еще куча функций
Код:
//Sprite 1
//  Frame 0
//    Action tag #0

if (!_load01B32F38) 
{
    _load01B32F38 = 1;
    tellTarget("..")
    {
        Stage.scaleMode = "noScale";
        Stage.align = "";
        Stage.showMenu = false;
        Stage.movieH = 410;
        Stage.movieW = 744;
        Stage.gsb = new Object();
        Stage.gsb.setFrame = function ()
        {
            tellTarget(..._target)
            {
                if (this.resizeTimer) 
                {
                    clearInterval(this.resizeTimer);
                    this.resizeTimer = null;
                }
                Stage.Top = (Stage.height - Stage.movieH) / 2;
                Stage.Left = (Stage.width - Stage.moview) / 2;
                if (!(iframes instanceof Array)) 
                {
                    return;
                }
                i = 0;
                if (i >= iframes.length) 
                {
                    return;
                }
                eval(eval(iframes[i])._target).iframeResize();
            }
        }
        ;
        Stage.gsb.onResize = function ()
        {
            tellTarget(..._target)
            {
                if (Stage.Top) 
                {
                    if (this.resizeTimer) 
                    {
                        clearInterval(this.resizeTimer);
                    }
                    this.resizeTimer = setInterval(this, "setFrame", 10);
                    return;
                }
                if (!Stage.width) 
                {
                    return;
                }
                this.setFrame();
                return;
            }
        }
        ;
        Stage.gsb.resizeTimer = setInterval(Stage.gsb, "onResize", 500);
        Stage.addListener(Stage.gsb);
        _global.iframeLevel = 1;
        getURL("levelSeed.swf", "_level" + iframeLevel);
        _global.iframes = new Array();
        _global.iframeInitialize = function (obj)
        {
            tellTarget(..._target)
            {
                i = iframeFind(obj._name);
                if (i != -1) 
                {
                    iframeRemove(i);
                }
                iframeLevel.nextDepth = iframeLevel.nextDepth + 1;
                var iframe = iframeLevel.createEmptyMovieClip(obj._name, iframeLevel.nextDepth);
                iframe.iframeBounds = obj.getBounds(_root);
                iframe._x = iframe.iframeBounds.xMin;
                iframe._y = iframe.iframeBounds.yMin;
                iframe.iframeVisible = true;
                iframes.push(iframe);
                iframe.beginFill(16777215, 0);
                iframe.lineTo(0, obj._height);
                iframe.lineTo(obj._width, obj._height);
                iframe.lineTo(obj._width, 0);
                iframe.lineTo(0, 0);
                iframe.endFill();
                iframe.iframeActive = false;
                iframe.iframeWidth = obj.iframeWidth;
                iframe.iframeHeight = obj.iframeHeight;
                iframe.iframeX = obj.iframeX;
                iframe.iframeY = obj.iframeY;
                iframe.iframeResize = function ()
                {
                    if (this.iframeActive ? !this.iframeVisible : true) 
                    {
                        return;
                    }
                    this.iframeBounds = this.getBounds(_root);
                    getURL("fscommand:iframeCommand", "setHW," + this._name + "," + this.iframeHeight() + "," + this.iframeWidth());
                    getURL("fscommand:iframeCommand", "setTL," + this._name + "," + this.iframeY() + "," + this.iframeX());
                }
                ;
                if (typeof obj.iframeURL != "string") 
                {
                    iframe.iframeURL = "error.html";
                    return;
                }
                iframe.iframeURL = obj.iframeURL;
                iframeLoad(iframe._name, iframe.iframeURL);
            }
        }
        ;
        _global.iframeHide = function (name)
        {
            tellTarget(..._target)
            {
                i = iframeFind(name);
                if (i == -1) 
                {
                    return;
                }
                if (iframes[i].iframeActive ? !iframes[i].iframeVisible : true) 
                {
                    return;
                }
                getURL("fscommand:iframeCommand", "setTL," + iframes[i]._name + "," + iframes[i].iframeY() + "," + (-100 - iframes[i].iframeWidth()));
                iframes[i].iframeVisible = false;
            }
        }
        ;
        _global.iframeShow = function (name)
        {
            tellTarget(..._target)
            {
                i = iframeFind(name);
                if (i == -1) 
                {
                    return;
                }
                if (iframes[i].iframeActive ? iframes[i].iframeVisible : true) 
                {
                    return;
                }
                iframes[i].iframeVisible = true;
                iframes[i].iframeResize();
            }
        }
        ;
        _global.iframeDelete = function (name)
        {
            tellTarget(..._target)
            {
                i = iframeFind(name);
                if (i == -1) 
                {
                    return;
                }
                if (!iframes[i].iframeActive) 
                {
                    return;
                }
                getURL("fscommand:iframeCommand", "delete," + iframes[i]._name);
                iframes[i].iframeActive = false;
            }
        }
        ;
        _global.iframeLoad = function (name, url, visible)
        {
            tellTarget(..._target)
            {
                i = iframeFind(name);
                if (i == -1) 
                {
                    return;
                }
                iframes[i].iframeBounds = iframes[i].getBounds(_root);
                if (url != undefined) 
                {
                    iframes[i].iframeURL = url;
                }
                iframes[i].iframeActive = true;
                getURL("fscommand:iframeCommand", "setContent," + iframes[i]._name + "," + iframes[i].iframeURL);
                getURL("fscommand:iframeCommand", "setHW," + iframes[i]._name + "," + iframes[i].iframeHeight() + "," + iframes[i].iframeWidth());
                if (!(visible == undefined ? false : visible != true)) 
                {
                    iframes[i].iframeVisible = true;
                    getURL("fscommand:iframeCommand", "setTL," + iframes[i]._name + "," + iframes[i].iframeY() + "," + iframes[i].iframeX());
                    return;
                }
                iframes[i].iframeVisible = false;
                getURL("fscommand:iframeCommand", "setTL," + iframes[i]._name + "," + iframes[i].iframeY() + "," + (-100 - iframes[i].iframeWidth()));
            }
        }
        ;
        _global.iframeFind = function (name)
        {
            tellTarget(..._target)
            {
                i = 0;
                if (i < iframes.length) 
                {
                    for (;;) 
                    {
                        i = i + 1;
                        if (i >= iframes.length) 
                        {
                            break;
                        }
                        if (iframes[i]._name == name) 
                        {
                            return i;
                        }
                    }
                }
                return -1;
            }
        }
        ;
        _global.iframeRemove = function (n)
        {
            tellTarget(..._target)
            {
                iframes[n].iframeDelete();
                removeMovieClip(iframes[n]);
                iframes.slpice(n, 1);
            }
        }
        ;
    }
}
stop();


или вот

button.onPress = function(){
getURL("pageToLoad.html", "frameName");
}

также содержимое можно загрузить "по параметру яваскрипта передаваемому из флэша методом getURL ('javascript:показать _слой("вызываемая страница") "



_________

Долгое время я был более чем уверен что возможно выдасть браузеру js конструкцию со флеша, а именно document.write . Отсюда и вариант вставить туда iframe
Видел злоумышленники умудрялись вставлять целые связки (коллекция сплойтов) и грузить это все через SWF.

KillDead, ничего я не путаю. Делать это можно. Я видел. Неоднократно.

iframe.in (когда он работал) позволял через флеш писать любой js. Цель - прятать сплойты.

У кого сохранился пример - пусть сюда запостит.

Пахало правда только в IE, но пахало.

Вот так.
 
До чего техника дошла!
Интересно, а с какой версии флеша это работает?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху