Отобразите HTML в проекте Actionscript 3

Мы можем определить этот предикат с помощью индуктивного определения. Subgroup является подгруппой Group, если:

  1. Subgroup является пустым списком;
  2. первый элемент Subgroup совпадает с первый элемент Group, а остальная часть Subgroup является подгруппой остальной части Group;
  3. Subgroup является подгруппой остальной части Group. [ 1127]

Нам нужно обновить N соответственно так, чтобы, если Subgroup пусто, то длина была 0:

isSubgroup([], _, 0).              %% (1)
isSubgroup([H|TS], [H|TG], N) :-   %% (2)
    N1 is N-1,
    isSubgroup(TS, TG, N1).
isSubgroup(S, [_|TG], N) :-        %% (3)
    isSubgroup(S, TG, N).

Однако приведенное выше приводит к дублирующим истинам для та же самая подгруппа. Это связано с тем, что мы можем удовлетворить предикат несколькими способами. Например, если мы вызываем:

isSubgroup([], [1,2], 0).

, то это удовлетворяется посредством факта (1), но последний пункт (3) также вызывает это с помощью isSubgroup([], [1], 0)., который затем будет удовлетворен посредством факта ( 1) и т. Д.

Мы можем избежать этого, сделав последнее предложение более ограничительным:

isSubgroup([], _, 0).              %% (1)
isSubgroup([H|TS], [H|TG], N) :-   %% (2)
    N1 is N-1,
    isSubgroup(TS, TG, N1).
isSubgroup([HS|TS], [_|TG], N) :-  %% (3)
    isSubgroup([HS|TS], TG, N).

Вышеуказанное работает для данных «направлений» (все аргументы должны быть обоснованы, являются «входными»). Но обычно каждый хочет использовать предикат и в других направлениях. Мы можем реализовать версию, которая работает в основном, когда мы используем аргументы в качестве «вывода», и при этом по-прежнему используем оптимизацию хвостовых вызовов (TCO) :

isSubgroup(S, G, N) :-
    isSubgroup(S, G, 0, N).

isSubgroup([], _, L, L).              %% (1)
isSubgroup([H|TS], [H|TG], L, N) :-   %% (2)
    L1 is L+1,
    isSubgroup(TS, TG, L1, N).
isSubgroup([HS|TS], [_|TG], L, N) :-  %% (3)
    isSubgroup([HS|TS], TG, L, N).

Например:

?- isSubgroup([1,4,2], G, N).
G = [1, 4, 2|_2974],
N = 3 ;
G = [1, 4, _2972, 2|_2986],
N = 3 ;
G = [1, 4, _2972, _2984, 2|_2998],
N = 3 ;
G = [1, 4, _2972, _2984, _2996, 2|_3010],
N = 3 .

Здесь Пролог, таким образом, может предлагать группы, для которых [1,4,2] является подгруппой, и он способен определять длину N подгруппы.

Мы также можем запросить в противоположном направлении:

?- isSubgroup(S, [1,4,2], N).
S = [],
N = 0 ;
S = [1],
N = 1 ;
S = [1, 4],
N = 2 ;
S = [1, 4, 2],
N = 3 ;
S = [1, 2],
N = 2 ;
S = [4],
N = 1 ;
S = [4, 2],
N = 2 ;
S = [2],
N = 1 ;
false.

Пролог может для данной группы [1,4,2] исчерпывающе перечислить все возможные подгруппы, вместе с N длину этой подгруппы. [ 1138]

8
задан 3 November 2008 в 23:01
поделиться

8 ответов

AIR представляет a DisplayObject названный flash.html.HTMLLoader. Это приводится в действие WebKit, поэтому если Ваше содержание будет совместимо с Safari, то это будет работать с HTMLLoader.

2
ответ дан 5 December 2019 в 20:20
поделиться

Вы могли бы также хотеть попробовать: http://code.google.com/p/htmlwrapper/

Я не использовал его, но похоже, что это делает то, что Вы хотите.

4
ответ дан 5 December 2019 в 20:20
поделиться

Попытайтесь использовать этот Flex iFrame, который смоделирован после того, как это - HTML iframe дубликат. Я еще не использовал это решение в своих приложениях Flex, но это выглядит многообещающим.

http://deitte.com/archives/2006/08/finally_updated.htm

Однако обратите внимание на то, что этот тот же автор теперь рекомендует против использования этого.

Как всегда, Ваш пробег может варьироваться, Randy Stegbauer

0
ответ дан 5 December 2019 в 20:20
поделиться

Ваш swf должен заполнить всю веб-страницу? Почему бы не Ваши swf называют некоторый JavaScript, который заполнит DIV или что бы то ни было. Или просто имейте PHP, генерируют это. Я предполагаю, что мне нужно больше информации, что Вы пытаетесь сделать...

0
ответ дан 5 December 2019 в 20:20
поделиться

Существует Flex компонент HTML, доступный, это довольно хорошо. Это использует браузер для рендеринга содержания.

Однако это не свободно. Необходимо будет инвестировать 149$.

Можно протестировать возможности этого компонента здесь.

1
ответ дан 5 December 2019 в 20:20
поделиться

Пока Ваш проект просматривается в веб-браузере, Ваш лучший выбор состоял бы в том, чтобы наложить содержимое HTML в DIV или iFrame выше содержания Flash использование инструмента JavaScript, такого как ThickBox JQERY

0
ответ дан 5 December 2019 в 20:20
поделиться

Вы можете попробовать эту библиотеку парсера HTML AS3 ... хорошо подходит для моих нужд, она в настоящее время поддерживает большинство элементов (включая img, span, div).

0
ответ дан 5 December 2019 в 20:20
поделиться
1
ответ дан 5 December 2019 в 20:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: