PDA

Просмотр полной версии : Как вызвать функцию у родителя?


MonkDead
11.01.2008, 16:22
Document class:

package {
import flash.display.Sprite;
import test1;
public class test extends Sprite {

public function test() {
trace("test");
var _test1=new test1;
_test1.x=stage.stageWidth / 2;
_test1.y=stage.stageHeight / 2;
_test1.name="_test1";
addChild(_test1);

}
public function testtttttt() {
trace("run function")
}
}
}


package {
import flash.display.MovieClip;
public class test1 extends MovieClip {

public function test1() {
trace("test1");
parent.testtttttt();// Как вызвать функцию у родителя?
parent.removeChild(this);// Почему не удаляется MovieClip?
trace(this.name) // trace: instance1 - почему не имя "_test1"
}
}
}

BlooDHounD
11.01.2008, 17:06
( parent as test ).testtttttt();
( parent as test ).removeChild(this);
this.name = "test1";
trace(this.name);

MonkDead
11.01.2008, 17:14
( parent as test ).testtttttt();
( parent as test ).removeChild(this);

никогда не видел подобного синтаксиса!!! - он не работает)

this.name = "test1";
trace(this.name);

имя задавать должен родитель


С removeChild и именем разобрался, осталось - вызов функции у родителя

etc
11.01.2008, 19:13
Откуда у test1 будет parent, если он ещё не добавлен в display list класса test?

Aziz Zaynutdinoff
11.01.2008, 19:19
есть событие ADDED_TO_STAGE. Подпишитесь на него и желаемые действа будут совершены.

MonkDead
11.01.2008, 23:41
киньте плз какой нибуть примерчик простенький

etc
11.01.2008, 23:47
Т.е. я правильно понял, что вам лень прочитать хелп на тему событий и подписки на них и вы решили потратить чужое время на написание примерчика?

MonkDead
11.01.2008, 23:50
нет не правильно сделал я через ADDED_TO_STAGE работает, но не полностью можно вызывать функции между классами внутри главного класса,но нельзя вызвать в главном классе!

etc
12.01.2008, 00:18
Вас непонятно.

MonkDead
12.01.2008, 04:19
тема закрыта

etc
12.01.2008, 15:09
тема закрыта
Неправда.

Вот теперь — закрыта.