Improve a few aeplib calls now that I understand them better.
This commit is contained in:
parent
b56481ca06
commit
b151afef69
@ -272,6 +272,7 @@ class PlacedClip(PlacedObject):
|
|||||||
if actual_frame > len(self.source.frames):
|
if actual_frame > len(self.source.frames):
|
||||||
actual_frame = len(self.source.frames)
|
actual_frame = len(self.source.frames)
|
||||||
self.visible_frame = actual_frame
|
self.visible_frame = actual_frame
|
||||||
|
self.__check_visible()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def frameOffset(self) -> int:
|
def frameOffset(self) -> int:
|
||||||
@ -435,18 +436,78 @@ class AEPLib:
|
|||||||
print(f"WARNING: Tried to call gotoAndPlay({frame}) on {thisptr} but that method doesn't exist!")
|
print(f"WARNING: Tried to call gotoAndPlay({frame}) on {thisptr} but that method doesn't exist!")
|
||||||
return UNDEFINED
|
return UNDEFINED
|
||||||
|
|
||||||
def deepGotoAndPlay(self, thisptr: Any, frame: Any) -> Any:
|
def gotoAndStop(self, thisptr: Any, frame: Any) -> Any:
|
||||||
# I don't know how this differs from regular gotoAndPlay.
|
# This appears to be a wrapper to allow calling gotoAndStop on clips.
|
||||||
try:
|
try:
|
||||||
meth = getattr(thisptr, 'gotoAndPlay')
|
meth = getattr(thisptr, 'gotoAndStop')
|
||||||
|
|
||||||
# Call it, set the return on the stack.
|
# Call it, set the return on the stack.
|
||||||
return meth(frame)
|
return meth(frame)
|
||||||
|
except AttributeError:
|
||||||
|
# Function does not exist!
|
||||||
|
print(f"WARNING: Tried to call gotoAndStop({frame}) on {thisptr} but that method doesn't exist!")
|
||||||
|
return UNDEFINED
|
||||||
|
|
||||||
|
def deepGotoAndPlay(self, thisptr: Any, frame: Any) -> Any:
|
||||||
|
# This is identical to regular gotoAndPlay, however it also recursively
|
||||||
|
# goes through and sets all child clips playing as well.
|
||||||
|
try:
|
||||||
|
meth = getattr(thisptr, 'gotoAndPlay')
|
||||||
|
|
||||||
|
# Call it, set the return on the stack.
|
||||||
|
retval = meth(frame)
|
||||||
|
|
||||||
|
# Recursively go through any children of "thisptr" and call play
|
||||||
|
# on them as well.
|
||||||
|
def play_children(obj: Any) -> None:
|
||||||
|
if isinstance(obj, PlacedClip):
|
||||||
|
obj.play()
|
||||||
|
for child in obj.placed_objects:
|
||||||
|
play_children(child)
|
||||||
|
|
||||||
|
play_children(thisptr)
|
||||||
|
return retval
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
# Function does not exist!
|
# Function does not exist!
|
||||||
print(f"WARNING: Tried to call gotoAndPlay({frame}) on {thisptr} but that method doesn't exist!")
|
print(f"WARNING: Tried to call gotoAndPlay({frame}) on {thisptr} but that method doesn't exist!")
|
||||||
return UNDEFINED
|
return UNDEFINED
|
||||||
|
|
||||||
|
def deepGotoAndStop(self, thisptr: Any, frame: Any) -> Any:
|
||||||
|
# This is identical to regular gotoAndStop, however it also recursively
|
||||||
|
# goes through and sets all child clips stopped as well.
|
||||||
|
try:
|
||||||
|
meth = getattr(thisptr, 'gotoAndStop')
|
||||||
|
|
||||||
|
# Call it, set the return on the stack.
|
||||||
|
retval = meth(frame)
|
||||||
|
|
||||||
|
# Recursively go through any children of "thisptr" and call stop
|
||||||
|
# on them as well.
|
||||||
|
def stop_children(obj: Any) -> None:
|
||||||
|
if isinstance(obj, PlacedClip):
|
||||||
|
obj.stop()
|
||||||
|
for child in obj.placed_objects:
|
||||||
|
stop_children(child)
|
||||||
|
|
||||||
|
stop_children(thisptr)
|
||||||
|
return retval
|
||||||
|
except AttributeError:
|
||||||
|
# Function does not exist!
|
||||||
|
print(f"WARNING: Tried to call gotoAndStop({frame}) on {thisptr} but that method doesn't exist!")
|
||||||
|
return UNDEFINED
|
||||||
|
|
||||||
|
def play(self, thisptr: Any) -> Any:
|
||||||
|
# This appears to be a wrapper to allow calling play on clips.
|
||||||
|
try:
|
||||||
|
meth = getattr(thisptr, 'play')
|
||||||
|
|
||||||
|
# Call it, set the return on the stack.
|
||||||
|
return meth()
|
||||||
|
except AttributeError:
|
||||||
|
# Function does not exist!
|
||||||
|
print(f"WARNING: Tried to call play() on {thisptr} but that method doesn't exist!")
|
||||||
|
return UNDEFINED
|
||||||
|
|
||||||
def stop(self, thisptr: Any) -> Any:
|
def stop(self, thisptr: Any) -> Any:
|
||||||
# This appears to be a wrapper to allow calling stop on clips.
|
# This appears to be a wrapper to allow calling stop on clips.
|
||||||
try:
|
try:
|
||||||
|
Loading…
Reference in New Issue
Block a user