Форум 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=86453)

motor4ik 16.10.2006 00:11

При создании экземпляра в ручную после компиляции пропадает текст
 
Вобщем в библиотеке есть мувик внутри которого динамический текст, этот мувик пролинкован к классу, в котором описаны роловеры, если атачить программно, все работает, текст в динамическом поле отображается, если руками вынести на раб поле и откомпилить. текст пропадает. не пойму что может быть (

motor4ik 16.10.2006 00:12

думал это из за галочки Export in first frame , убрал не помогло (

etc 16.10.2006 00:35

Я попробовал — работает всё.
Что за ролловеры? Покажи код.

motor4ik 16.10.2006 12:18

Код:

dynamic class Butt extends MovieClip {

        public function Butt(){
        }
       
        private function _onRelease():Void{
        }
       
        //инициализация кнопки (присваиваем Label кнопки и функцию при отпускании)
        public function init(txt:String,func:Function):Void{
               
                this.text_mc.text_txt.text=txt;
                trace(this.text_mc.text_txt.text);
                this._onRelease=func;
        }

        public function onRollOver():Void{
                this.gotoAndStop(2);
        }
       
        public function onRollOut():Void{
                this.gotoAndStop(1);
        }
       
        public function onPress():Void{
                this.gotoAndPlay(3);
        }
       
        public function onRelease():Void{
                this.gotoAndPlay(5);
                this._onRelease();
        }
               
}


motor4ik 16.10.2006 12:19

что самое интересное trace выводит тест нормально...ничего не пойму..

motor4ik 16.10.2006 13:05

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

т.е. как только создаю кнопку вручную, во всех остальных кнопках (программных) тоже тест пропадает , неужели тупо глюк флэша, че делать блин ((

etc 16.10.2006 13:28

Скорее всего где-то перекрываются переменные или ссылки на поля…

motor4ik 16.10.2006 14:27

вот это кстати вполне реально...

etc 16.10.2006 14:33

trace спасёт тебя. Проверял правильность ссылки на поле и вообще, на поле ссылка или на объект.
А ещё лучше прописывать все свойства класса, а не дописывать dynamic из-за лени.

motor4ik 16.10.2006 15:04

Цитата:

Сообщение от __etc
А ещё лучше прописывать все свойства класса, а не дописывать dynamic из-за лени.

это что значит? где прописывать?

etc 16.10.2006 15:26

В секции переменных.
private var text_mc:MovieClip; и т.п.

motor4ik 16.10.2006 18:45

согласен...просто это не от лени..скорее от незнания..

я станлкнулся с такой проблемой, когда в классе описывал функцию которая присваивалась событию onPress() , класс ругался на все свойства объекта которому присваивалось событие...т.к. я там использовал this, не смог обойти никак кроме dynamic , по этому это передалось и сюда, но здесь я уже понял что он не ругается

motor4ik 16.10.2006 18:51

вот про что я говорю:

Код:

class ClassName {

private target_mc:MovieClip;

public function ClassName(target:MovieClip){
      target_mc=target;
      target_mc.p=1;
      target_mc.onPress=_onPress;
}

function _onPress(){
  trace(this.p);
}
}

компилятор соответственно ругается, говорит у this нет такого свойства p , как обойти не знаю...


такая запись соответственно не дает ошибок


Код:

target_mc.onPress=function(){
  trace(this.p);
}


но она не очень удобна

iNils 16.10.2006 19:35

1. Надо объявить public var p:Number;
2. this использовать необязательно
3. И есть еще такой хак this["p"] (это так, на будущее:D)

motor4ik 16.10.2006 19:39

1 ну объявлять все свойста другого объекта это лишнее
2 да необязательно всеровно заругается
3 вот про это даже не подумал...

вобщем проще dynamic написать и не париться

iNils 16.10.2006 19:49

Цитата:

Сообщение от motor4ik
1 ну объявлять все свойста другого объекта это лишнее

Ну, это смотря как посмотреть. Ты ведь можешь и не написать target_mc.onPress=_onPress или вызвать _onPress не через target_mc, и что тогда будет? :)
Цитата:

Сообщение от motor4ik
2 да необязательно всеровно заругается

Я не к тому что ругаться будет, а что можно не писать вобще.

motor4ik 18.10.2006 18:19

вобщем еще один глюк, при добавлении это символа на рабочий стол в динамических полях перестают отображатся некоторые симолы..к чему бы это???

motor4ik 18.10.2006 18:28

БРЕД!!! Или у меня реально с флэшом беда.. Сейчас что сделал, поставил у символа в текст, Don`t embed откомпилил, все работает текст везде отображается првильно. поставил обратно Embed выделил те же пункты, откомпилил обратно все отображается четко, что за ЧЕРТ! я сутки потратил на то чтобы найти пути, неправильные ,выявить ошибку, а это оказалась просто тупость флэша, бред в который раз

Kikasso 19.10.2006 19:45

Наверное, вручную кинутые на сцену кнопки не успевают проининициироваться.
Предлагаю компромисс, так сказать полупрограммный метод.
Расставляешь вручную на сцене невидимые крестики, куда должна кнопка встать, и пускай каждый крестик onLoad кнопку к себе приаттачит. Все заработает, а потом на досуге ковыряйся в коде.
*****************************
УПС! Извините, не дочитал.


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

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