Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Странные параметры DOMSymbolInstance (http://www.flasher.ru/forum/showthread.php?t=200070)

BuKT 29.05.2013 18:26

Странные параметры DOMSymbolInstance
 
Коммиты шли сплошным потоком. .fla помечались как бинарники, и если менялись, то только целиком. Работа кипела, ничто не предвещало беды. Пока в один прекрасный момент не перестали выделяться явно имеющиеся на stage символы.

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

После долгой копки в .xfl и иерархии DOM оказалось, что изменился ровно один параметр ровно в одном, но, к сожалению, очень часто встречающемся символе. К счастью, попытка найти решение в FlashIDE не возымела успеха, равно как и попытка повторить ошибку. Быстро был составлен скрипт и на сервер полетел огроменный коммит с кучей исправленных и перепакованных бинарников.

Смеркалось.

Цитата:

_________
А вопрос собственно о параметрах детей символов, представленных в xfl-формате. Ошибка произошла при следующем коммите:
Код AS3:

<DOMSymbolItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://ns.adobe.com/xfl/2008/" name="SymbolA" itemID="4eead774-000005c4" lastModified="1363844520">
  <timeline>
    <DOMTimeline name="SymbolA">
      <layers>
        <DOMLayer name="Layer 1" color="#4FFF4F" current="true" isSelected="true">
          <frames>
            <DOMFrame index="0" keyMode="9728">
              <elements>
--                <DOMSymbolInstance libraryItemName="SymbolB" selected="true" symbolType="graphic" loop="loop">
++                <DOMSymbolInstance libraryItemName="SymbolB" locked="true" symbolType="graphic" loop="loop">
                  <matrix>
                    <Matrix ty="-186"/>
                  </matrix>
                  <transformationPoint>
                    <Point x="339" y="189"/>
                  </transformationPoint>
                </DOMSymbolInstance>
              </elements>
            </DOMFrame>
          </frames>
        </DOMLayer>
      </layers>
    </DOMTimeline>
  </timeline>
</DOMSymbolItem>

Как можно видеть из XML выше - есть некий символ `SymbolA`, в котором лежит единственный `SymbolB`. При пользовании .fla из FlashPro - символ присутствует на сцене, но не выделяется (и не даёт себя изменить). При пользовании сгенерённой .swc - так же присутствует и позволяет проводить манипуляции с собой.

Но что значат эти два параметра DomSymbolInstance: `selected` и `locked`? И как получилось, что первый заменился вторым при манипуляциях исключительно во FlashIDE?

BuKT 04.02.2015 02:36

А ведь скоро два года, как наткнулся на сабжевый баг. Ну не суть.

Оказывается, это действительно можно сделать неосторожной манипуляцией во flashIDE.
Не пытайтесь повторить дома! Как сделать обратно, не разворачиваясь в .xfl - я не знаю:

in4core 04.02.2015 03:52

Чувак вообще странно, что кто то работает с .xfl . Очень странно, так как таких тем не возникает, до этого просто не доходят. Все делают другими средставами.
Конкретно задача какая? ( изначальная )

BuKT 04.02.2015 04:15

"Чувак", никто и не планировал работать с .xfl. Ошибка возникла из-за работы во flashIDE. Чинится она только из .xfl.

Изначальная задача описана в первом посте.

PainKiller 04.02.2015 12:09

Действительно воспроизвел это все во Flash CC, все так и есть, визуально, средствами IDE, это можно исправить только откатив действие в журнале, больше способа я не нашел и не нагуглил. Спасибо, из серии хозяйке на заметку.

nubideus 04.02.2015 12:36

Цитата:

Как сделать обратно
в контекстном меню пунктом ниже "Разблокировать все" поди что то делает.
может надо правый клик по пустой области -> упорядочить -> разблокировать все?

у меня просто flash pro нету, попробовать не могу

нагуглил
Цитата:

To lock or unlock a group or symbol, select the group or symbol, and then select Modify > Arrange > Lock. Select Modify > Arrange > Unlock All to unlock all locked groups and symbols.
https://helpx.adobe.com/flash/using/...g-objects.html правда все равно ничего не понятно. может быть не надо никуда кликать, а в заголовке окна пункт Изменить

PainKiller 04.02.2015 16:30

Да разблокировать работает, сейчас проверил)), меня просто в инструкции эти строчки смутили select the group or symbol - выбрать и разблокировать если выбрать символ не получается? Тогда это не баг. Просто особенность про которую почти никто не знает.


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

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