Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   недокументированный метод addFrameScript (http://www.flasher.ru/forum/showthread.php?t=132679)

Котяра 18.11.2009 10:36

недокументированный метод addFrameScript
 
Декомпилируя одну swf наткнулся на очень интересный метод:
Код AS3:

/// [Undocumented] Takes a collection of frame (zero-based) - 
//method pairs that associates a method with a frame on the timeline.
public function addFrameScript (frame:int, method:Function) : void;

Т.е. можно динамически определять код для мувиклипа.. иначе говоря это добавляет обработчик на наступление события (клип дошёл до фрэйма такого-то)
Пока не вижу как это использовать, но смысл есть.. другое дело - не пропадёт ли этот метод в дальнеёшем..

Furinax 18.11.2009 11:02

Мне этот метод точно очень пригодится. Стараюсь вообще не писать код на временной шкале, но иногда бывают случаи, что ввиду своей малоопытности просто не могу найти другого решения. Теперь нашлось :) Спасибо за полезную инфу.

Flash_nooob 18.11.2009 12:18

Не очень проникся, если было бы так:
public function addFrameScript (name:movieClip, frame:int, method:Function) : void;
было бы интересно, а в существующей реализации смысл от мну ускользает)

Котяра 18.11.2009 12:38

это публичный метод класса MovieClip
Код AS3:

name.addFrameScript (frame:int, method:Function)

хотя тут нужно смотреть как компилятор внедряет method - т.е. должен ли method обязательно являться методом клипа name или можно ссылаться на любую ф-цию
потестирую..

etc 18.11.2009 12:41

Цитата:

Сообщение от Flash_nooob (Сообщение 866381)
Не очень проникся, если было бы так:
public function addFrameScript (name:movieClip, frame:int, method:Function) : void;
было бы интересно, а в существующей реализации смысл от мну ускользает)

Зачем name?

Jewelz 18.11.2009 12:41

Цитата:

Сообщение от Котяра (Сообщение 866391)
т.е. должен ли method обязательно являться методом клипа name или можно ссылаться на любую ф-цию
потестирую..

не должен, и насколько я знаю - не может

Котяра 18.11.2009 12:47

насчет не должен - понял, а вот не может это неправда.
Код AS3:

package 
{
    import flash.display.*;
    import flash.text.*;
 
    dynamic public class btnStreetCleaner extends MovieClip
    {
        public var txtHintText:TextField;
        public var buttonType:int;
        public var trans:MovieClip;
 
        public function btnStreetCleaner()
        {
            addFrameScript(0, this.frame1);
            return;
        }// end function
 
        function frame1()
        {
            this.buttonType = "1";
            return;
        }// end function
 
    }
}


r_r_f_r 18.11.2009 13:50

Цитата:

Сообщение от Котяра (Сообщение 866355)
.. другое дело - не пропадёт ли этот метод в дальнеёшем..

Очень мало вероятно что удалят, его усиленно использует Flex'овый фреймворк.

dmitriev 18.11.2009 14:09

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

kackbip 18.11.2009 16:11

По какой причине, интересно, его не документируют?


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

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