作者jeaby (hello, ActionScript)
看板Flash
标题Re: [问题] 如何在物件内控制舞台的元件?
时间Sun Nov 25 02:56:48 2012
※ 引述《woodymonkey (小罐的吃太快)》之铭言:
: 我在舞台上放了一些图、文字 (没有转换成元件),
: 例如放了一个textfield,在属性那里命名为 TextA。
: 然後建立一个 A class。
: public class A {
: public function A() {
: // constructor
: }
: public function hideText():void {
: TextA.visible = false;
: }
: }
: 我把程式码写在时间轴上:
: var objA:A = new A();
: objA.hideText();
: 但是执行後却显示:存取未定义的属性…
: 我想问说如何在物件里控制主舞台上的"东西",
: 将 TextA 转换为元件也是一样的结果…
: parent 或 root 也试不出正确的用法…
: 请问该如何解决呢?
: 谢谢。
首先要先懂什麽是 Document Class
看图说故事
http://goo.gl/8t7kM
取得场景元件的方式为:
public class A
{
/*
这边一定要用 public 来修饰,private, protected 都会出错
物件名称就跟你在场景的物件名称一样
这样就可以直接使用了
*/
public var TextA:TextField;
public function A()
{
// 假设要在第10格让TextA隐藏
addFrameScript(9, hideText);
}
public function hideText():void
{
TextA.visible = false;
}
}
而且你要在影格写程式码存取 TextA
就直接写 TextA.visible = false;
就好拉~ 不用大费周章还要写 Document Class
且也不推荐程式码在影格和 Document Class 都有写
会造成日後维护困难
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.33.232.7
1F:推 woodymonkey:谢谢说明!我本来是写在影格里,不过现在想要把它改写 11/30 00:02
2F:→ woodymonkey:到class里。希望改成在main class中再加入物件,然後 11/30 00:05
3F:→ woodymonkey:新加入的物件可以控制主舞台的元素。 11/30 00:07